프로그래머스(Java) (192) 썸네일형 리스트형 [프로그래머스] 베스트앨범 코드 힌트장르별 총 재생 횟수 계산:genres와 plays 배열을 사용하여 각 장르의 총 재생 횟수를 계산합니다.이 정보를 HashMap에 저장합니다.장르 정렬:장르별 총 재생 횟수를 기준으로 장르를 내림차순으로 정렬합니다.이 작업은 장르별로 재생 횟수가 많은 순서대로 곡을 선택하기 위해 필요합니다.장르별 곡 정렬:각 장르에 대해, 그 장르에 속하는 곡들을 재생 횟수로 내림차순으로 정렬합니다.만약 재생 횟수가 같다면, 인덱스가 작은 곡을 우선시합니다.결과 리스트 작성:각 장르에서 가장 많이 재생된 두 곡의 인덱스를 결과 리스트에 추가합니다.이때, 최대 두 곡만 선택합니다.결과 배열 생성:결과 리스트를 배열로 변환하여 반환합니다. 정답은 더보기 클릭더보기import java.util.*;class So.. [프로그래머스] 숫자 변환하기 코드 힌트목표:주어진 숫자 x에서 시작해 목표 숫자 y에 도달하는 최소 연산 횟수를 구합니다.사용 가능한 연산은 n을 더하기, 2를 곱하기, 3을 곱하기입니다.BFS (너비 우선 탐색):BFS를 사용해 최단 경로를 찾습니다.BFS는 주어진 상태에서 가능한 모든 다음 상태를 큐에 추가하고, 하나씩 처리하면서 목표 상태에 도달하는지를 확인합니다.방문 체크:아마 대부분의 사람들이 시간초과의 이유로 찾으셨을거라고 생각합니다.이미 방문한 숫자는 최소 횟수가 아니므로 visit 배열을 사용하여 이미 방문한 숫자는 다시 방문하지 않도록 visited 배열을 사용합니다. 종료 조건:목표 숫자 y에 도달하면 그때까지의 연산 횟수를 반환합니다.큐가 비었음에도 목표에 도달하지 못했다면 -1을 반환해 불가능함을 나타냅니다. .. [프로그래머스] 성격 유형 검사하기 코드 힌트성격 유형 초기화:성격 유형을 두 개씩 묶어 저장하는 배열을 초기화합니다. 예를 들어, {'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()로 하셔도 되지만 따로 메소드를 만들어서 정렬하셔도 좋습니다. 정.. [프로그래머스] 오픈채팅방 코드 힌트유저 정보 관리:사용자 ID와 닉네임을 관리하기 위해 HashMap을 사용합니다.이 맵은 각 사용자의 최신 닉네임을 저장하며, 나중에 메시지를 생성할 때 이를 사용하여 정확한 닉네임을 표시합니다.행동 기록 및 메시지 생성:사용자의 행동(Enter, Leave, Change)을 시간 순서대로 처리하여 각 행동에 맞는 메시지를 기록합니다.Enter와 Leave는 메시지를 생성하여 리스트에 추가하고, Change는 해당 ID의 닉네임만 업데이트합니다.닉네임 변경 처리:Change 동작이 발생할 때마다 HashMap에서 해당 사용자의 닉네임을 업데이트합니다.이 업데이트는 이전에 기록된 메시지의 닉네임에도 반영되기 때문에, 메시지 생성 시 올바른 닉네임이 사용됩니다.최종 메시지 배열 생성:모든 로그를 처.. 이전 1 2 3 4 5 6 7 ··· 24 다음