본문 바로가기

전체 글

(445)
[프로그래머스] 핸드폰 번호 가리기 코드 힌트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"을 찾기 ..
[프로그래머스] 배열 만들기 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개가 다른 경우: 배열에서 같은..
[프로그래머스] 간단한 논리 연산 코드 힌트논리 연산자 or (∨) 및 and (∧)의 의미 이해하기:OR (||): 두 값 중 하나라도 true이면 결과가 true입니다.예: false || true는 true입니다.예: true || false는 true입니다.예: true || true는 true입니다.예: false || false는 false입니다.AND (&&): 두 값 모두 true여야 결과가 true입니다.예: false && true는 false입니다.예: true && false는 false입니다.예: true && true는 true입니다.예: false && false는 false입니다.논리 연산자의 역할:OR (∨): 여러 조건 중 하나라도 true인 경우 전체 결과를 true로 만듭니다.AND (∧): 모든 조건..
[프로그래머스] 타겟넘버 코드 힌트2중 for문 사용하기:2차원 배열을 순회하려면 i와 j 두 개의 인덱스를 사용하여 배열의 모든 요소를 탐색합니다.i는 행 인덱스를, j는 열 인덱스를 나타냅니다.인덱스 합 조건 확인:배열의 각 요소에 대해 i + j의 합이 주어진 값 k 이하인지를 확인합니다.조건을 만족할 때만 해당 요소의 값을 result에 더해줍니다.변동 길이 배열 처리:배열 board의 각 행은 서로 다른 길이를 가질 수 있으므로, 내부 for문에서 열의 길이를 board[i].length로 동적으로 설정합니다.이를 통해 배열의 크기에 상관없이 올바르게 요소를 탐색할 수 있습니다.결과 반환:모든 조건을 만족하는 요소들의 합을 계산한 후, 최종 결과를 반환합니다. 정답은 더보기 클릭더보기class Solution { ..
[프로그래머스] 게임 맵 최단거리 코드 힌트BFS (너비 우선 탐색) 사용하기최단 거리를 찾는 문제에서는 BFS를 사용하는 것이 효율적입니다. BFS는 시작점에서 모든 노드를 레벨별로 탐색하며, 가장 먼저 도달한 경로가 최단 경로가 됩니다. DFS를 사용할 경우, 모든 경로를 탐색해야 하므로 효율성 문제로 인해 시간 초과가 발생할 수 있습니다.Queue 자료구조 활용BFS를 구현할 때는 Queue를 사용합니다. Queue는 FIFO(First-In-First-Out) 구조를 가지며, 탐색할 좌표와 현재까지의 거리를 저장하는 데 유용합니다. Queue를 통해 현재 위치에서 가능한 모든 이동을 처리하고, 다음 단계의 위치와 거리 정보를 큐에 추가합니다.좌표와 거리 저장탐색 과정에서 각 좌표와 해당 좌표까지의 거리 정보를 함께 저장합니다. 이..