본문 바로가기

728x90

프로그래머스(Java)/Level 0

(93)
[프로그래머스] 글자 지우기 문제 힌트첫 번째 접근 방법: 문자열 배열을 사용문자열을 배열로 변환: my_string.split("")을 사용하여 문자열을 문자 배열로 변환합니다. 이렇게 하면 각 문자를 개별적으로 접근할 수 있습니다.인덱스를 따라 빈 문자열로 교체: 주어진 indices 배열을 순회하며, 해당 인덱스에 위치한 문자를 빈 문자열로 교체합니다.결과 문자열 생성: 문자 배열을 순회하며 빈 문자열이 아닌 문자를 이어 붙여 최종 결과 문자열을 생성합니다.두 번째 접근 방법: StringBuilder와 정렬된 인덱스를 사용인덱스 배열 정렬: 주어진 indices 배열을 정렬합니다. 이렇게 하면 문자열을 순회할 때 인덱스를 빠르게 찾을 수 있습니다.문자열 순회 및 문자 추가: StringBuilder를 사용하여 문자열을 순회합..
[프로그래머스] 문자 개수 세기 코드 힌트아스키 코드란?컴퓨터는 문자를 숫자로 저장하고 처리합니다. 아스키(ASCII) 코드는 문자와 숫자를 일대일로 매핑한 표준 코드 체계입니다.각 문자는 고유한 정수 값으로 표현됩니다. 예를 들어, 대문자 'A'는 65, 소문자 'a'는 97의 아스키 코드 값을 갖습니다.문자열 순회문자열을 순회하면서 각 문자의 아스키 코드 값을 확인할 수 있습니다.Java에서는 charAt() 메서드를 사용하여 각 문자의 위치에 따른 문자를 얻을 수 있습니다.대소문자 구분대문자와 소문자를 구분하여 처리해야 할 경우가 있습니다. 이를 위해 아스키 코드 값을 비교하여 구분할 수 있습니다.예를 들어, 'A'부터 'Z'까지의 문자는 아스키 코드 값이 65부터 90까지이며, 'a'부터 'z'까지는 97부터 122까지입니다.인..
[프로그래머스] qr code 코드 힌트반복문 사용:문자열 code의 각 문자를 순회하는 반복문을 사용합니다.문자열의 길이만큼 반복문을 돌면서 각 인덱스를 확인합니다.조건 확인:각 인덱스를 q로 나누었을 때 나머지가 r인지를 확인합니다.나머지가 r인 경우 해당 인덱스의 문자를 선택합니다.문자 추가:조건에 맞는 문자를 결과 문자열에 추가합니다.조건에 맞는 문자를 효율적으로 추가하기 위해 StringBuilder를 사용할 수 있습니다. 정답은 더보기 클릭 더보기class Solution { public String solution(int q, int r, String code) { StringBuilder result = new StringBuilder(); // 결과 문자열을 저장할 StringBuilder 객체 생성..
[프로그래머스] 세로 읽기 코드 힌트이 문제를 해결하기 위해 다음 단계를 고려하세요:문자 선택의 시작점: 주어진 c 값은 문자열에서 문자를 선택하기 시작할 위치를 나타냅니다. 그러나 이 값은 1부터 시작하므로, 0부터 시작하는 인덱스에 맞추기 위해 c-1로 조정합니다.문자 간격: m은 선택할 문자 간격을 나타냅니다. 예를 들어, m이 3이면, 매 3번째 문자를 선택합니다.문자 선택: 문자열의 인덱스를 사용하여 c-1부터 시작하여 m 간격으로 문자를 선택합니다.문자 추가: 선택된 문자를 결과 문자열에 추가합니다. 반복문을 사용하여 끝까지 진행합니다.m과 c에 대한 수학적 힌트m: 선택할 문자의 간격을 나타냅니다. 예를 들어, m이 4이면, 문자열에서 매 4번째 문자를 선택합니다. 따라서, 선택할 문자의 인덱스는 c-1부터 시작하여 ..
[프로그래머스] 7의 개수 코드 힌트숫자의 마지막 자릿수 추출하기:n % 10 연산을 사용하면 숫자 n의 가장 오른쪽 자릿수를 얻을 수 있습니다. 예를 들어, 123 % 10은 3을 반환합니다.숫자의 모든 자릿수를 순회하기:숫자를 10으로 나누는 n /= 10 연산을 통해 숫자의 자릿수를 한 단계씩 제거할 수 있습니다. 예를 들어, 123을 10으로 나누면 12가 됩니다.숫자의 모든 자릿수에서 특정 조건 검사하기:반복문을 사용하여 각 자릿수를 검사할 수 있습니다. 예를 들어, while (n > 0) 반복문을 사용하면 n의 모든 자릿수를 검사할 수 있습니다.예시 코드아래는 숫자의 모든 자릿수를 확인하는 예시 코드입니다:int n = 12345; // 예시 숫자while (n > 0) { int digit = n % 10; /..
[프로그래머스] 2차원으로 만들기 코드 힌트결과 배열 선언결과 배열 result는 num_list의 길이를 n으로 나눈 몫을 행의 수로, n을 열의 수로 하는 2차원 배열로 선언합니다.int[][] result = new int[num_list.length / n][n];여기서 num_list.length / n은 결과 배열의 행(row) 수를 의미합니다.n은 결과 배열의 열(column) 수를 의미합니다.2차원 배열에 값 채우기for 루프를 사용하여 num_list 배열을 순회합니다.각 값 num_list[i]를 2차원 배열 result의 올바른 위치에 할당합니다.위치 계산:i / n은 현재 인덱스 i를 n으로 나눈 몫으로, 현재 값이 들어갈 행의 인덱스를 나타냅니다.i % n은 현재 인덱스 i를 n으로 나눈 나머지로, 현재 값이 들어..
[프로그래머스] 배열 만들기 5 코드 힌트배열 크기 동적 조정:배열의 크기를 미리 알 수 없으므로 ArrayList를 사용하여 동적으로 크기를 조정합니다. ArrayList는 요소를 추가할 때 자동으로 크기가 조정됩니다.문자열 처리:각 문자열에서 특정 구간을 추출하려면 substring(int startIndex, int endIndex) 메서드를 사용합니다. 이 구간을 정수로 변환하기 위해 Integer.parseInt(String s) 메서드를 사용합니다.조건 검사 및 추가:변환된 정수가 주어진 값 k보다 큰지 검사하고, 조건에 맞으면 리스트에 추가합니다.배열 변환:ArrayList의 내용을 정적 배열로 변환합니다. 리스트의 크기를 기반으로 배열을 생성하고, 리스트의 각 값을 배열에 복사합니다.정답은 더보기 클릭더보기import j..
[프로그래머스] 주사위 게임 3 코드 힌트배열 정렬을 이용한 접근:입력된 4개의 정수를 배열에 저장하고, 배열을 오름차순으로 정렬합니다.정렬된 배열을 기반으로 각 숫자의 빈도와 위치를 쉽게 확인할 수 있습니다.조건 예시:만약 정렬된 배열의 결과가 a, b, c, d일 때:if a == d: 모든 값이 동일합니다. (예: [2, 2, 2, 2])else if a == c || b == d: 3개의 숫자가 같고 1개가 다릅니다. (예: [2, 2, 2, 3] 또는 [1, 2, 2, 2])추가적인 조건문은 스스로 생각해서 해보시는 것을 추천합니다.조건문 작성:모든 숫자가 같을 경우: 배열의 모든 값이 동일하면 결과는 1111 * a입니다. (예: [3, 3, 3, 3] → 1111 * 3)3개의 숫자가 같고 1개가 다른 경우: 배열에서 같은..

728x90