프로그래머스(Java)/Level 0 (93) 썸네일형 리스트형 [프로그래머스] 세 개의 구분자 코드 힌트split, replaceAll를 하지 않은 힌트(정답에는 적어놓겠습니다.)문자열을 구분자에 따라 나누기:문자열에서 특정 문자('a', 'b', 'c')를 기준으로 문자열을 나누는 문제입니다.각 문자와 구분자가 있을 때까지 계속해서 문자열을 모은 후, 구분자가 나오면 모은 문자열을 저장하고 다시 초기화합니다.문자열 저장과 초기화:StringBuilder를 사용하여 구분자가 나오기 전까지 문자를 저장합니다.구분자가 나오면 StringBuilder의 내용을 리스트에 저장하고 초기화합니다.리스트를 배열로 변환:구분자를 기준으로 나눈 문자열들을 리스트에 저장한 후, 최종적으로 이 리스트를 배열로 변환합니다.특별한 경우 처리:구분자가 전혀 없는 경우, 빈 문자열 리스트를 반환하지 않도록 "EMPTY"를 .. [프로그래머스] 배열의 길이를 2의 거듭제곱으로 만들기 코드 힌트이 문제에서는 주어진 배열 arr의 길이보다 크거나 같은 가장 작은 2의 제곱수 크기의 배열을 만들어야 합니다. 그런 다음, 새로 만든 배열에 기존 배열의 값을 복사합니다. 2의 제곱수 찾기:배열의 길이보다 크거나 같은 가장 작은 2의 제곱수를 찾기 위해 반복문을 사용합니다. 이 과정에서 n을 반복적으로 2배씩 증가시켜 나갑니다.예를 들어, 배열의 길이가 5라면, 크거나 같은 2의 제곱수는 8입니다 (2^3 = 8).새로운 배열 생성 및 값 복사:2의 제곱수 크기의 배열을 생성한 후, 기존 배열의 값을 새 배열에 차례대로 복사합니다. 만약 기존 배열의 길이가 2의 제곱수보다 작다면, 나머지 부분은 0으로 채워집니다.정답은 더보기 클릭더보기class Solution { public int[].. [프로그래머스] 문자열이 몇 번 등장하는지 세기 코드 힌트이 문제에서는 문자열 myString에서 주어진 패턴 pat이 몇 번 나타나는지를 세어야 합니다.이를 위해 아래의 메소드와 개념을 사용하게 됩니다:반복문을 사용하여 패턴 검색:아이디어: 문자열 myString의 시작부터 끝까지 패턴 pat을 찾으려면, 문자열의 각 위치에서 pat의 길이만큼 잘라내어 그 부분이 pat과 일치하는지 확인해야 합니다.어떻게 하는지: 예를 들어, 문자열이 "hellohello"이고 패턴이 "lo"라면, "he", "el", "ll", "lo" 이렇게 차례로 부분 문자열을 만들어서 "lo"와 비교합니다.문자열을 자르는 메소드 substring():역할: 이 메소드는 문자열에서 특정 위치부터 일정 길이의 부분을 잘라내는 역할을 합니다.예시: "hello".substring.. [프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 힌트:이 문제는 문자열의 특정 패턴을 찾아 그 패턴이 마지막으로 나타나는 위치까지의 부분 문자열을 추출하는 문제입니다. 이를 해결하기 위해 세 가지 중요한 메소드를 사용합니다:substring() 메소드:설명: 이 메소드는 문자열의 지정된 시작 인덱스에서 끝까지 또는 지정된 끝 인덱스 전까지의 부분 문자열을 반환합니다. 예를 들어, "hello".substring(1, 4)는 "ell"을 반환합니다.사용: 이 문제에서는 마지막으로 나타난 패턴까지의 문자열을 추출하는 데 사용됩니다.lastIndexOf() 메소드:설명: 이 메소드는 문자열에서 지정된 패턴이 마지막으로 나타나는 위치의 인덱스를 반환합니다. 만약 해당 패턴이 문자열에 없으면 -1을 반환합니다. 예를 들어, "hello world".lastIn.. [프로그래머스] 1로 만들기 코드 힌트초기화result 변수는 모든 연산의 총 횟수를 기록하기 위해 사용됩니다.배열 요소 순회num_list 배열의 각 요소를 순회하면서, 각 숫자가 1이 될 때까지 필요한 연산 횟수를 계산합니다.배열을 순회할 땐 for문 혹은 forEach문을 사용하여 배열의 요소에 접근합니다.배열 요소를 1이 될 때까지 반복은 while문을 사용하여 n > 1일 때 반복하게 합니다.짝수와 홀수 처리짝수일 때: 해당 숫자를 절반으로 나눕니다. 예를 들어, 8 -> 4 -> 2 -> 1과 같은 과정입니다.홀수일 때: 먼저 1을 뺀 후 절반으로 나누어 짝수로 만듭니다. 예를 들어, 7 -> 6 -> 3 -> 2 -> 1과 같은 과정입니다.연산 횟수 누적각 숫자에 대해 연산이 수행될 때마다 result 변수를 증가시킵니.. [프로그래머스] 조건에 맞게 수열 변환하기 2 코드 힌트초기화와 플래그 설정result 변수는 연산 횟수를 기록하며, flag는 배열의 변화를 감지하는 데 사용됩니다.이 반복문은 배열이 더 이상 변하지 않을 때까지 실행됩니다.조건에 따른 배열 요소 수정첫 번째 조건: 배열 요소가 50 이상이면서 짝수일 때, 해당 요소를 절반으로 나눕니다.두 번째 조건: 배열 요소가 50 미만이면서 홀수일 때, 해당 요소를 두 배로 하고 1을 더합니다.각 조건이 만족되면, 배열이 변한 것이므로 flag를 false로 설정하여 반복을 계속하도록 합니다.반복 횟수 증가매번 반복이 끝날 때마다 result를 증가시켜 연산 횟수를 기록합니다.최종 결과 반환마지막 반복이 완료된 후에는 실제 연산 횟수에서 1을 뺀 값을 반환합니다. 이는 마지막 반복에서 배열에 변화가 없었기 때.. [프로그래머스] 빈 배열에 추가, 삭제하기 코드 힌트ArrayList 사용하기:ArrayList는 동적으로 크기가 변하는 배열입니다. 요소를 추가하거나 제거할 때 유용합니다. ArrayList를 사용하면 리스트의 끝에 새로운 요소를 추가하거나, 리스트에서 기존의 요소를 쉽게 제거할 수 있습니다.for 문으로 배열 요소 순회하기:for 문을 사용하여 배열의 각 요소를 순차적으로 처리합니다. 배열의 길이만큼 반복하여 각 요소를 확인하고 필요한 작업을 수행합니다.true일 때의 처리:만약 flag[i]가 true일 때는, arr[i]의 값을 리스트에 추가합니다.예시: arr[i]가 3일 때, 리스트에 3을 2배인 6번 추가합니다.설명: add(element) 메소드를 사용하여 요소를 리스트의 끝에 추가합니다. 예를 들어, add(3)을 하면 리스트의 .. [프로그래머스] 날짜 비교하기 코드 힌트날짜 배열 비교:두 날짜 배열 date1과 date2는 [year, month, day] 형식입니다.이 배열들을 순서대로 비교합니다.연도 비교:배열의 첫 번째 요소(연도)를 비교합니다.date1의 연도가 date2의 연도보다 작으면, date1이 이전 날짜이므로 1을 반환합니다.반대로, date1의 연도가 크면 0을 반환합니다.월 비교:연도가 같을 경우, 두 번째 요소(월)를 비교합니다.date1의 월이 date2의 월보다 작으면 1을 반환합니다.date1의 월이 크면 0을 반환합니다.일 비교:연도와 월이 모두 같을 경우, 세 번째 요소(일)를 비교합니다.date1의 일이 date2의 일보다 작으면 1을 반환합니다.date1의 일이 크면 0을 반환합니다.모든 요소가 같을 경우:연도, 월, 일이 .. 이전 1 2 3 4 5 6 7 8 ··· 12 다음