프로그래머스(Java)/Level 0 (93) 썸네일형 리스트형 [프로그래머스] 컨트롤 제트 코드 힌트스택을 활용한 문제 해결:스택은 LIFO(Last In, First Out) 방식으로 작동하므로, 최근에 추가된 요소를 쉽게 제거할 수 있습니다. "Z"는 최근에 추가된 숫자를 제거하라는 의미이므로, 스택을 사용하여 이를 간단히 처리할 수 있습니다.숫자와 명령어 구분:문자열을 공백으로 나눈 후, 각 단어가 숫자인지 "Z"인지 구분하여 처리합니다. "Z"는 스택에서 마지막 숫자를 제거하고, 숫자는 스택에 추가합니다. 배열을 활용한 간단한 접근:배열을 사용하면 각 요소에 직접 접근하고 수정할 수 있으므로, "Z"가 있는 경우 간단히 이전 숫자를 "0"으로 변경하여 처리할 수 있습니다.공백으로 분할 후 처리:공백으로 문자열을 분할하여 각 요소를 배열로 변환한 후, "Z"에 따라 이전 요소를 변경하는 .. [프로그래머스] 한 번만 등장한 문자 코드 힌트알파벳 빈도수 카운트:문자열에 포함된 각 알파벳의 등장 횟수를 카운트해야 합니다. 이를 위해 int 배열을 사용하여 알파벳의 빈도수를 저장합니다.배열의 인덱스는 알파벳의 ASCII 코드에서 'a'를 뺀 값을 사용하여 각 알파벳을 구분합니다. 예를 들어, 'a'는 인덱스 0, 'b'는 인덱스 1, 'z'는 인덱스 25입니다.문자 빈도수 처리:문자열을 순회하면서 각 문자의 등장 횟수를 배열에 기록합니다. 배열의 값이 1인 경우 해당 문자는 문자열에서 유일하게 나타난 문자입니다.결과 문자열 생성:등장 횟수가 1인 문자를 찾으면, 이 문자를 결과 문자열에 추가합니다.StringBuilder를 사용하여 최종 결과 문자열을 효율적으로 구성합니다.문자와 인덱스 변환:배열의 인덱스를 문자로 변환하려면, cha.. [프로그래머스] A로 B 만들기 코드 힌트문제 이해:이 문제에서는 두 문자열 `before`와 `after`가 주어집니다. `before`의 알파벳 순서를 어떻게 바꾸든 `after`가 될 수 있는지 확인하는 것이 목표입니다. 즉, 두 문자열이 서로 다른 순서로 배열된 같은 문자들로 이루어져 있다면, `before`를 어떤 방법으로든 `after`로 변환할 수 있습니다. 알파벳 개수 세기:두 문자열이 서로 같은 문자들로 이루어져 있는지 확인하기 위해 각 문자열의 알파벳 개수를 셉니다.before와 after 문자열 각각에 대해, 각 알파벳(a~z)의 개수를 셀 수 있도록 크기 26의 배열을 사용합니다.문자 개수 비교하기:먼저 before 문자열을 순회하면서 각 문자의 개수를 세어 배열에 저장합니다.그런 다음, after 문자열도 동일하.. [프로그래머스] 숨어있는 숫자의 덧셈 (2) 코드 힌트문자열을 순회하며 숫자 찾기:주어진 문자열을 하나씩 문자 단위로 검사합니다. 이때, 숫자인 경우와 문자(알파벳)인 경우를 구분해야 합니다.숫자 연속성 처리:연속된 숫자를 모아야 합니다. 문자열을 순회하면서 숫자를 발견하면, 이를 모아서 문자열로 저장합니다. 만약 문자가 나오면, 현재까지 모은 숫자를 정수로 변환하여 결과에 더하고, 저장된 숫자를 비워야 합니다.문자 후 처리:문자열 끝에 도달했을 때, 마지막으로 모아 놓은 숫자가 있으면 이를 정수로 변환하여 결과에 추가합니다. 이렇게 해야 모든 숫자를 처리할 수 있습니다.숫자 처리 및 초기화:숫자를 모을 때는 StringBuilder를 사용하여 숫자를 문자열로 쌓습니다. 문자를 만나면, 그동안 모은 숫자를 정수로 변환하고 결과에 더한 후, Stri.. [프로그래머스] 팩토리얼 코드 힌트팩토리얼 개념 이해하기:팩토리얼은 n!로 표현되며, n부터 1까지의 모든 정수를 곱한 값을 의미합니다. 예를 들어, 5!는 5 × 4 × 3 × 2 × 1입니다. 이 문제에서는 주어진 숫자 n 이하의 가장 큰 팩토리얼 값을 찾아야 합니다.팩토리얼 값 계산하기:팩토리얼을 계산할 때, 초기값을 설정합니다. 팩토리얼 값을 계속 곱해가면서 현재 계산된 팩토리얼 값을 저장합니다.계산 반복하기:n이 현재 계산된 팩토리얼 값보다 클 동안 반복합니다. 매 반복마다 팩토리얼의 계수를 증가시키고, 현재 계산된 팩토리얼 값에 계수를 곱하여 업데이트합니다.결과 확인하기:반복이 끝난 후, n과 현재 계산된 팩토리얼 값이 같은지 확인합니다. 만약 같다면 현재 계수가 정답입니다.만약 n이 현재 계산된 팩토리얼 값보다 작다.. [프로그래머스] 모스부호 (1) 코드 힌트문제 이해:입력으로 Morse 코드로 인코딩된 문자열이 주어집니다. 이를 알파벳으로 변환해야 합니다. Morse 코드는 공백으로 구분된 문자열로 제공되며, 각 Morse 코드가 대응하는 알파벳으로 변환되어야 합니다.HashMap 사용:다른 자료구조를 사용할 수도 있지만, HashMap을 연습하기에 좋은 문제입니다. HashMap은 데이터를 키-값 쌍으로 저장할 수 있는 데이터 구조입니다. 이 문제에서는 Morse 코드 문자열을 키로, 대응하는 알파벳을 값으로 저장하면 변환 작업을 빠르게 수행할 수 있습니다.HashMap을 사용하면 Morse 코드에서 알파벳을 찾는 과정이 빠르고 효율적이므로, HashMap 사용을 강력히 추천합니다.HashMap에 저장할 Morse 코드 배열:String[] mo.. [프로그래머스] 진료순서 정하기 코드 힌트문제 이해:주어진 emergency 배열에서 각 요소의 우선순위를 순위로 변환합니다.예를 들어, 가장 큰 값은 1등, 두 번째로 큰 값은 2등 등으로 정리합니다.복사 및 정렬:emergency 배열을 복사하여 새로운 배열을 만들고 정렬합니다.정렬된 배열을 사용하면 각 요소의 순위를 쉽게 파악할 수 있습니다.요소 위치 찾기:원본 emergency 배열과 결과 배열의 요소 위치는 동일합니다.정렬된 배열을 활용하여 각 요소의 우선순위를 파악하고, 원본 배열의 각 요소에 맞는 순위를 결과 배열에 저장합니다.이를 위해 요소의 인덱스를 찾는 방법으로 indexOf()를 사용할 수 있습니다.순위 매기기:정렬된 배열을 큰 값부터 순차적으로 탐색하며 각 값에 순위를 매깁니다.이 순위를 원본 배열에서의 위치에 맞.. [프로그래머스] 전국 대회 선발 고사 코드 힌트순위별 최저 랭킹 찾기:1등부터 3등까지 각 순위에 해당하는 참가자를 찾기 위해 랭킹 배열과 참석 여부 배열을 사용합니다. 각 순위에서 참가할 수 있는 최저 랭킹을 찾는 과정이 필요합니다.최저 랭킹 찾기:각 순위에 대해 현재까지 찾은 최저 랭킹보다 더 낮은 랭킹을 가진 참가자를 찾습니다. 이를 위해 attendance 배열에서 참가 중인 인덱스를 검사하고, rank 배열에서 최저 랭킹을 업데이트합니다.결과 계산:각 순위에 따라 인덱스를 사용하여 결과를 계산합니다. 1등은 10000배수, 2등은 100배수, 3등은 1배수로 계산됩니다. 찾은 인덱스에 따라 결과를 누적합니다.참가 상태 업데이트:현재 순위의 참가자를 찾은 후, 그 참가자의 상태를 false로 변경하여 다음 순위를 찾을 때 제외됩니다... 이전 1 2 3 4 5 6 ··· 12 다음