본문 바로가기

프로그래머스(Java)

(192)
[프로그래머스] 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으로 나눈 나머지로, 현재 값이 들어..
[프로그래머스] 수박수박수박수박수박수? 코드 힌트StringBuilder 사용:문자열을 자주 수정하는 경우, StringBuilder를 사용하면 효율적입니다. 이는 문자열의 수정 작업에서 StringBuilder가 더 빠르고 메모리 효율적이기 때문입니다.String으로 하셔도 괜찮습니다.for문 사용:for 문을 사용하여 0부터 n까지 반복합니다. 이 반복문은 문자열의 각 자리에 "수"와 "박"을 번갈아 가며 추가하기 위해 사용됩니다.조건문 사용:if 조건문을 사용하여 현재 인덱스 i가 짝수인지 홀수인지를 검사합니다.짝수일 경우 홀수일 경우 StringBuilder에 추가합니다.i % 2 == 0 조건은 i가 짝수임을 의미하며, 짝수일 때 "수"를 추가합니다.그렇지 않으면 "박"을 추가합니다.StringBuilder 결과 반환:모든 반복이 끝..
[프로그래머스] 핸드폰 번호 가리기 코드 힌트StringBuilder 사용:문자열을 자주 수정하는 경우, StringBuilder를 사용하면 효율적입니다. 물론 String을 사용하셔도 상관없는 문제이지만 StringBuilder 연습도 같이 하면 좋을 것 같습니다.문자열 길이 확인:전화번호의 길이를 확인하여 반복문을 통해 각 문자를 처리합니다. 반복문은 전화번호의 길이만큼 실행됩니다.조건문 사용:조건문을 사용하여 마지막 4자리가 아닌 경우에는 '*'를 추가하고, 마지막 4자리는 원래 숫자를 그대로 추가합니다.StringBuilder 결과 반환:모든 문자에 대해 처리가 끝난 후, StringBuilder 객체를 문자열로 변환하여 반환합니다. StringBuilder의 toString() 메서드를 사용합니다.메소드 활용하여 문제풀기:for ..
[프로그래머스] 평균 구하기 코드 힌트배열 순회 및 합 계산:주어진 배열 arr의 모든 요소를 순회하면서 합을 계산합니다. 이는 단순한 반복문을 통해 이루어집니다.평균 계산:배열의 모든 요소의 합을 배열의 길이로 나누어 평균을 계산합니다.결과 반환:계산된 평균 값을 반환합니다.  정답은 더보기 클릭더보기class Solution { public double solution(int[] arr) { // 평균을 저장할 변수 선언 double result = 0; // 배열의 합을 저장할 변수 선언 double sum = 0; // 배열의 모든 요소를 순회하며 합을 계산 for (int i = 0; i
[프로그래머스] 서울에서 김서방 찾기 코드 힌트배열 순회 및 검색:주어진 배열 seoul을 순회하면서 "Kim"의 위치를 찾습니다. 이는 단순한 선형 탐색을 통해 이루어집니다.인덱스 저장 및 루프 종료:"Kim"을 찾으면 해당 인덱스를 저장하고 break 문을 사용하여 루프를 종료합니다.출력하기:String.format 메서드를 사용하여 return 할 수 있습니다."김서방은 " + index + "에 있다"; 로도 출력할 수 있습니다. 정답은 더보기 클릭더보기class Solution { public String solution(String[] seoul) { // "Kim"의 인덱스를 저장할 변수 선언 int index = 0; // seoul 배열을 순회하면서 "Kim"을 찾기 ..