전체 글 (439) 썸네일형 리스트형 [프로그래머스] 글자 지우기 문제 힌트첫 번째 접근 방법: 문자열 배열을 사용문자열을 배열로 변환: 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; /.. [프로그래머스] 단어 변환 코드 힌트BFS 접근 방법:큐 사용:큐를 사용하여 탐색을 수행합니다. 큐에는 현재 단어와 변환 단계 수를 함께 저장합니다.현재 단어와 단계 수를 큐에서 꺼내어 처리하고, 다음 단계로 넘어갈 때는 새 단어와 단계 수를 큐에 추가합니다.Queue queue = new LinkedList();queue.add(new Node(currentWord, currentStep));while (!queue.isEmpty()) { Node node = queue.poll(); // 처리 코드}방문 기록:방문 기록 배열을 사용하여 이미 방문한 단어를 체크합니다. 이는 중복된 탐색을 방지하고, 효율적으로 탐색할 수 있도록 도와줍니다.방문한 단어는 큐에 다시 추가되지 않도록 합니다.boolean[] visited .. [프로그래머스] 달리기 경주 코드 힌트HashMap 활용:2중 for문을 사용하면 시간 초과가 됩니다. 빠르게 탐색을 할 수 있는 방법으로 hashMap을 사용합니다. HashMap map을 사용하여 각 플레이어의 이름과 초기 순위를 저장합니다.호출된 플레이어의 이름을 키로 하여 순위를 빠르게 조회할 수 있습니다.플레이어 순위 변경:players 배열의 순서를 변경합니다.호출된 플레이어와 그 앞의 플레이어의 위치를 교환하고, 이에 따라 map에서 각 플레이어의 순위도 업데이트합니다.반복문을 통한 처리:callings 배열을 순회하면서 각 호출된 플레이어의 순위를 변경합니다.호출된 플레이어의 이름을 키로 하여 map에서 해당 플레이어의 현재 순위를 조회하고, 이를 기반으로 위치 변경을 수행합니다. 정답은 더보기 클릭더보기import .. [프로그래머스] 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으로 나눈 나머지로, 현재 값이 들어.. 이전 1 ··· 35 36 37 38 39 40 41 ··· 55 다음