본문 바로가기

728x90

프로그래머스(Java)

(192)
[프로그래머스] [PCCE 기출문제] 9번 / 이웃한 칸 코드 힌트배열 접근 방법:상하좌우 네 방향을 한 번에 처리하기 위해 dy, dx 배열을 사용합니다.int[] dx = {1,0,-1,0}     int[] dy = {0,1,0,-1}; 로 설정하시면됩니다.for문을 이용해서 각 방향에 대해 좌표 이동을 계산하여 nx, ny 변수에 저장합니다.색상 비교:주어진 좌표 (h, w)에서 상하좌우에 있는 좌표들의 색상과 targetColor를 비교하여 같은 색상의 개수를 세는 방법입니다.결과 반환:최종적으로 result 변수에 저장된 값, 즉 주어진 좌표에서 상하좌우에 있는 같은 색상의 개수를 반환합니다. 더보기class Solution { public int solution(String[][] board, int h, int w) { // b..
[프로그래머스] 다음에 올 숫자 코드 힌트등차수열인지 확인하기:수열의 첫 번째 항과 두 번째 항의 차이와, 두 번째 항과 세 번째 항의 차이를 비교합니다.if (common[1] - common[0] == common[2] - common[1]) { ... }다음 항 예측하기 (등차수열):마지막 항에 공차를 더합니다.return common[n-1] + (common[n-1] - common[n-2]);다음 항 예측하기 (등비수열):마지막 항에 공비를 곱합니다.return common[n-1] * (common[n-1] / common[n-2]); 정답은 더보기 클릭더보기class Solution { public int solution(int[] common) { int n = common.length; ..
[프로그래머스] 크레인 인형뽑기 게임 코드 힌트stack을 사용하기:이유: Stack은 후입선출(LIFO, Last-In-First-Out) 구조를 가지며, 바구니의 맨 위에 있는 인형과 새로 뽑은 인형을 쉽게 비교할 수 있습니다. 인형을 뽑고 바구니에 넣거나, 바구니 맨 위의 인형을 제거하는 등의 작업을 효율적으로 수행할 수 있습니다.stack이 비어있을 때와 stack의 제일 위 요소가 동일할 때:stack이 비어있을 때:바구니가 비어있는 경우, 현재 뽑은 인형을 바로 바구니에 추가합니다.stack의 제일 위 요소와 현재 뽑은 인형이 동일할 때:바구니의 맨 위에 있는 인형과 새로 뽑은 인형이 동일하면, 두 인형이 터져서 사라지므로 바구니 맨 위의 인형을 제거하고, 사라진 인형의 수를 증가시킵니다.result에는 stack.pop()을 했..
[프로그래머스] 키패드 누르기 코드 힌트초기 설정:'*'와 '#'의 초기 위치를 설정합니다.이 위치는 leftPos와 rightPos 배열에 저장됩니다.초기 설정 후에는 이 위치들이 번호 입력에 따라 업데이트됩니다.번호와 위치 매핑:각 번호와 그에 해당하는 위치를 저장해야 합니다.저는 이를 위해 번호를 키(key)로, 위치를 값(value)으로 하는 해시맵(HashMap)을 사용했습니다.해시맵말고도 2차원 배열을 사용하셔도 됩니다.이 맵은 번호를 입력하면 그 번호의 위치를 반환하는 용도로 사용됩니다.손의 초기 설정:사용자가 오른손잡이인지 왼손잡이인지 설정합니다이 설정은 번호를 누를 때 손의 선택에 영향을 줍니다.번호 입력 처리:주어진 번호 배열(numbers)을 순회하면서 각 번호를 누를 때마다 손의 선택을 결정합니다.왼쪽 열의 번호..
[프로그래머스] 글자 지우기 문제 힌트첫 번째 접근 방법: 문자열 배열을 사용문자열을 배열로 변환: 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부터 시작하여 ..

728x90