본문 바로가기

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

(34)
[프로그래머스] [PCCE 기출문제] 10번 / 공원 코드 힌트:문제 이해:mats 배열은 정사각형의 돗자리로 현재 공원에 놓을 수 있는 가장 큰 돗자리의 크기를 구하는데 사용하는 배열입니다.park는 n x m 크기의 공원 맵으로, 매트가 놓일 수 있는 빈 공간은 "-1"로 표시되어 있습니다. 매트는 "-1"로 표시된 빈 공간에만 놓일 수 있습니다.목표는 "-1"로 표시된 빈 공간 중 가장 큰 매트가 들어갈 수 있는 위치를 찾는 것입니다.매트 놓기:각 빈 공간("-1")에서 매트가 들어갈 수 있는 가장 큰 크기를 찾는 것이 목표입니다.공원 맵을 순회하면서 빈 공간이 나오면 그 위치를 기준으로 mats 배열에 있는 매트 크기 중 들어갈 수 있는 최대 크기를 찾습니다.매트는 정사각형이므로 해당 위치에서 매트가 들어갈 수 있는지를 확인해야 합니다.매트 크기 확..
[프로그래머스] [PCCE 기출문제] 9번 / 지폐 접기 코드 힌트문제의 핵심:지갑에 들어갈 수 없는 지폐를 지갑에 넣기 위해, 지폐의 큰 쪽을 반으로 접는 문제입니다.지폐의 크기를 조정할 때마다 카운트를 증가시켜, 최종적으로 지폐가 지갑에 들어갈 수 있게 만들 때까지 접는 횟수를 구합니다.지갑과 지폐 크기 비교:wallet과 bill 배열을 비교하여 지갑이 지폐를 담을 수 있는지 확인합니다. 지갑과 지폐의 최소 크기와 최대 크기를 비교합니다.지폐 접기 과정:bill 배열에서 큰 값을 반으로 접어 크기를 줄입니다. 이 과정은 지갑에 들어갈 수 있을 때까지 반복됩니다.최대/최소 크기 계산:지갑과 지폐 각각의 최대값과 최소값을 구해, 지갑과 지폐의 크기를 비교합니다.  정답은 더보기 클릭더보기더보기class Solution { public int soluti..
[프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기 코드 힌트:동영상 시간 처리:동영상의 전체 길이와 현재 재생 위치, 오프닝 구간 시작/종료 시간을 모두 분 단위로 변환하여 처리합니다.명령어 처리:next 명령어는 10초 앞으로 이동, 그 외 명령어는 10초 뒤로 이동하게 구현합니다.오프닝 구간 스킵:오프닝 구간에 도달하면 해당 구간을 넘어서 이동합니다.시간 설정 및 포맷 변환:현재 시간이 동영상의 길이를 벗어나지 않도록 제한하고, 시/분 형식으로 변환해 출력합니다. 정답은 더보기 클릭더보기class Solution { public String solution(String video_len, String pos, String op_start, String op_end, String[] commands) { // Video 객체 생성 (..
[프로그래머스] 성격 유형 검사하기 코드 힌트성격 유형 초기화:성격 유형을 두 개씩 묶어 저장하는 배열을 초기화합니다. 예를 들어, {'R', 'T'}는 한 쌍의 성격 유형을 의미합니다.각 성격 유형의 점수를 저장하기 위해 해시맵을 초기화합니다. 이때 초기값으로 모든 성격 유형의 점수를 0으로 설정합니다.점수 계산:survey 배열과 choices 배열을 순차적으로 탐색합니다.각 설문 항목에서 첫 번째 성격 유형과 두 번째 성격 유형을 추출합니다.choices 값에 따라 점수를 분배합니다. 만약 선택한 값이 4보다 크면 두 번째 성격 유형에 점수를 더하고, 4보다 작으면 첫 번째 성격 유형에 점수를 더합니다.결과 조합:각 성격 유형 쌍에서 점수가 높은 성격 유형을 선택해 결과 문자열에 추가합니다.동일한 점수일 경우 배열에서 앞에 있는 성격..
[프로그래머스] 바탕화면 정리 코드 힌트초기화:result 배열은 최종적으로 반환될 값으로, 좌상단과 우하단 좌표를 담고 있습니다.배열의 처음 두 값(최소 Y, 최소 X)은 각각 Integer.MAX_VALUE로 초기화하여, 최소값을 찾는 데 방해되지 않도록 합니다.나머지 두 값(최대 Y, 최대 X)은 Integer.MIN_VALUE로 초기화하여, 최대값을 찾는 데 방해되지 않도록 합니다.2차원 탐색:wallpaper 배열은 각 문자열을 행으로 구성된 2차원 공간을 나타냅니다. 각 문자(열)를 행별로 탐색합니다.# 문자를 찾을 때마다, 해당 좌표를 기준으로 result 배열의 값을 갱신합니다.좌표 갱신:#을 찾은 경우, result[0](최소 Y)와 result[1](최소 X)는 최소값을 갱신하여 좌상단의 좌표를 설정합니다.resul..
[프로그래머스] 개인정보 수집 유효기간 코드 힌트약관 유효기간 매핑:주어진 약관 종류와 그에 따른 유효기간을 매핑하여, 각 약관이 몇 개월 동안 유효한지 저장합니다.이 매핑은 나중에 개인정보의 유효기간을 계산할 때 사용됩니다.유효기간 계산 및 만료 확인:각 개인정보의 수집일자와 약관 종류를 바탕으로, 해당 개인정보가 오늘 날짜를 기준으로 만료되었는지를 확인합니다.만약 유효기간이 지나면 만료된 것으로 간주하고 결과 리스트에 해당 개인정보의 인덱스를 저장합니다.개인정보를 저장할 수 있는 달의 정수의 범위는 1~100입니다. month, year를 잘 관리하셔야합니다.결과 배열 생성:만료된 개인정보의 인덱스를 저장한 리스트를 배열로 변환하여 최종 결과로 반환합니다.  정답은 더보기 클릭더보기import java.util.*;class Solutio..
[프로그래머스] 공원 산책 코드 힌트현재 위치 찾기:공원 배열에서 'S'로 표시된 시작 위치를 찾습니다.이 위치가 로봇 강아지의 초기 위치가 됩니다.이 위치를 2차원 배열의 인덱스로 변환하여 저장합니다.방향 및 거리 처리:각 경로(route)는 방향과 이동 거리를 포함합니다.방향은 "N" (북쪽), "S" (남쪽), "E" (동쪽), "W" (서쪽)으로 주어지며, 이를 기준으로 로봇 강아지를 이동시킵니다.이동 거리는 해당 방향으로 몇 칸 이동해야 하는지를 나타내며, 이동 도중 장애물이 있으면 이동을 중단하고 다음 명령을 처리합니다.방향별 이동 처리:"N" (북쪽): 위쪽으로 이동하며, y 좌표를 감소시킵니다. 이동 도중 인덱스가 0보다 작아지거나, 장애물('X')을 만나면 이동을 중단합니다."S" (남쪽): 아래쪽으로 이동하며, ..
[프로그래머스] [PCCE 기출문제] 10번 / 데이터 분석 코드 힌트필터링:입력된 데이터 중에서 특정 조건을 만족하는 항목들만 선택합니다.예를 들어, 주어진 기준 값 이하인 항목들만 선택하여 새로운 리스트에 저장합니다.배열 변환:필터링된 데이터를 리스트에서 이차원 배열로 변환합니다.몇 개의 데이터가 들어올지 모르기 때문에 List를 사용합니다.정렬:정렬 기준에 따라 데이터를 정렬합니다.예를 들어, "날짜"나 "코드" 등을 기준으로 배열을 오름차순으로 정렬합니다.오름차순 : 1, 4, 6, 10, 46, 100 처럼 작은 숫자에서 큰 숫자로 정렬하는 것정렬 방법:배열의 요소들을 비교하여 올바른 위치에 삽입하는 방식으로 정렬합니다.이 과정에서 각 요소의 값을 비교해가며 데이터를 정리합니다.sort()로 하셔도 되지만 따로 메소드를 만들어서 정렬하셔도 좋습니다.  정..