본문 바로가기

728x90

프로그래머스(Java)/Level 0

(93)
[프로그래머스] 그림 확대 코드 힌트배열 크기 설정:결과를 담을 배열을 생성합니다. 배열의 크기는 입력된 문자열 배열의 길이에 k를 곱한 값입니다. 이는 각 문자열이 k배로 커지기 때문입니다.문자열 반복 처리:각 문자열의 각 문자를 k번 반복하여 새로운 문자열을 생성합니다. String.valueOf(s.charAt(j)).repeat(k)를 사용하여 문자열을 반복합니다.문자열의 행 반복 추가:각 문자열 행을 k번 반복하여 결과 배열에 추가합니다. 이 과정에서 StringBuilder를 사용하여 반복된 문자열을 효율적으로 생성하고, result 배열에 저장합니다.결과 배열에 저장:반복된 각 문자열을 결과 배열에 추가하고, 인덱스를 업데이트하여 올바른 위치에 저장합니다.정답은 더보기 클릭더보기class Solution { pu..
[프로그래머스] 정수를 나선형으로 배치하기 코드 힌트방향 배열 설정:상, 좌, 하, 우 방향을 배열 dx와 dy를 사용하여 정의합니다. 각각의 방향은 (x, y) 좌표에서의 이동을 나타냅니다. 예를 들어, (1, 0)은 오른쪽으로 이동하는 것을 의미합니다.결과 배열 초기화:int[][] result = new int[n][n];를 사용하여 n x n 크기의 배열을 생성합니다. 이 배열은 숫자를 채우기 위한 결과 배열입니다. 배열의 기본값은 0입니다.변수 초기화:숫자 num을 1로 초기화하고, 현재 위치를 (0, 0)으로 설정합니다. direction 변수를 0으로 초기화하여 오른쪽 방향으로 시작합니다.숫자 채우기:현재 위치가 배열의 유효한 위치이고, 그 위치에 숫자가 아직 채워져 있지 않으면, 현재 위치에 숫자를 채우고 숫자를 증가시킵니다.방향 ..
[프로그래머스] 정사각형으로 만들기 코드 힌트최대 크기 계산하기:주어진 2차원 배열 arr의 행과 열 중 더 큰 값을 n으로 설정합니다. 이는 결과 배열의 크기를 결정하기 위함입니다.새로운 배열 초기화:int[][] result = new int[n][n];를 사용하여 n x n 크기의 새로운 2차원 배열을 생성합니다. 이 배열의 기본값은 자동으로 0으로 초기화됩니다. 배열이 생성되면 모든 요소는 기본값인 0으로 채워집니다.배열 복사하기:기존 배열의 원소를 새 배열에 복사합니다. 이때 주어진 배열의 크기와 새로운 배열의 크기 차이를 고려하여, 주어진 배열의 범위 내에서만 원소를 복사합니다.결과 배열 반환하기:모든 복사 작업이 끝나면 새로운 배열을 반환합니다. 새 배열은 주어진 배열의 원소를 포함하며, 나머지 부분은 기본값인 0으로 채워져 ..
[프로그래머스] 무작위로 K개의 수 뽑기 코드 힌트중복 원소 제외하기:주어진 배열을 순회하면서 중복된 원소를 제외하고, 결과 배열에 원소를 추가합니다. 중복 확인을 위해 List를 사용하며 contains() 혹은 indexOf()로 요소를 찾았는지 확인합니다.결과 배열 초기화:결과 배열의 길이는 k로 설정합니다. 배열을 채우면서 빈 자리는 -1로 설정합니다.빈 자리를 -1로 채우기:배열을 순회하여 중복을 제외한 후, 결과 배열의 빈 자리를 -1로 채워서 배열의 길이를 맞춥니다.효율적인 중복 확인:List의 원소의 중복 여부를 확인합니다. 배열의 길이와 k의 값에 따라 결과 배열을 조정합니다. 정답은 더보기 클릭더보기import java.util.*;class Solution { public int[] solution(int[] arr, ..
[프로그래머스] 두 수의 합 코드 힌트문자열 길이 맞추기:두 문자열의 길이를 맞추기 위해 가장 긴 길이에 맞춰 왼쪽에 0을 추가합니다. 이를 위해 String.format()메소드를 사용하여 두 문자열을 동일한 길이로 만듭니다.자리 수 계산:오른쪽 끝에서부터 시작하여 각 자릿수의 합을 계산합니다. 이때, 자릿수 올림을 고려하여 계산합니다.올림 처리:각 자리의 합이 10 이상일 때, 올림을 설정하고 자릿수의 나머지를 계산합니다. 올림이 남아있는 경우에는 마지막에 추가합니다.문자열 결과 변환:각 자릿수의 계산 결과를 StringBuilder에 추가한 후, 최종적으로 문자열을 역순으로 변환하여 반환합니다. 이는 오른쪽에서부터 계산했기 때문에 필요한 과정입니다.  정답은 더보기 클릭더보기class Solution { public St..
[프로그래머스] 배열 만들기 6 코드 힌트스택을 활용한 문제 해결:스택을 사용하여 인접한 동일한 요소를 제거합니다. 스택은 후입선출(Last In, First Out) 구조를 갖기 때문에 최근에 추가된 요소를 먼저 처리할 수 있습니다.스택의 비어있음 확인:stack.isEmpty()를 사용하여 스택이 비어 있는지를 확인합니다. 스택이 비어 있을 때는 현재 요소를 추가하고 계속 진행합니다.스택의 최상위 요소 확인:stack.peek()를 사용하여 스택의 최상위 요소를 확인합니다. 현재 요소와 비교하여 동일한 경우에는 스택에서 제거(stack.pop())합니다.조건에 따른 스택 조작:현재 요소가 스택의 최상위 요소와 동일하면 제거하고, 그렇지 않으면 스택에 추가합니다. 이 작업을 반복하여 인접한 동일한 요소 쌍을 제거합니다.스택 비어있음 ..
[프로그래머스] 커피 심부름 코드 힌트주문 종류에 따른 가격 계산:주문 내용에 따라 가격을 다르게 설정합니다. 'latte'가 포함된 주문은 5000원의 가격을, 그 외의 경우는 4500원의 가격을 적용합니다.문자열 검색:contains 메서드를 사용하여 문자열이 특정 단어('latte')를 포함하고 있는지 확인합니다.조건문 사용:if 문을 사용하여 조건에 맞는 가격을 결정합니다. order.contains("latte") 조건을 통해 'latte'가 포함된 경우와 포함되지 않은 경우를 구분합니다.가격 합산:각 주문에 대해 적절한 가격을 result 변수에 누적하여 총 가격을 계산합니다. 정답은 더보기 클릭더보기class Solution { public int solution(String[] orders) { //..
[프로그래머스] 문자열 묶기 코드 힌트문자열 길이별 개수 세기:문자열 배열의 각 문자열 길이를 기준으로 그 길이의 문자열 개수를 저장하는 배열을 사용합니다.문자열 길이에 대한 인덱스 활용:문자열의 길이를 인덱스로 사용하여 개수를 저장합니다. 예를 들어, 길이가 5인 문자열은 lenArr[5]에 저장됩니다.배열의 최대 값 찾기:문자열 길이에 따른 개수를 저장한 배열에서 가장 큰 값을 찾습니다. 이 값이 가장 많이 나타난 문자열 길이의 개수를 나타냅니다. 정답은 더보기 클릭더보기class Solution { public int solution(String[] strArr) { // 문자열 길이에 따라 문자열 개수를 저장할 배열을 초기화합니다. // 최대 길이 30을 고려하여 31 크기로 설정합니다. ..

728x90