본문 바로가기

전체 글61

프로그래머스 - 폰켓몬 해당 문제는 입력받은 포켓몬 종류를 해시맵에 종류를 키로 값은 카운트 값을 가지게 해서 넣고, 문제가 원하는 결과는 최대 다양하게 포켓몬 종류를 가지는 경우로 해시맵의 사이즈와 같다는 것을 알 수 있습니다. 제한조건으로 고를 수 있는 포켓몬 수는 입력받은 nums.length 의 반 이므로 Math.min으로 해시맵의 사이즈와 nums의 사이즈 중 작은값을 리턴하도록 구현했습니다. 단순하게 다 넣고 해시맵의 크기와 최대 고를수 있는 갯수중 작은 값을 리턴하는 방식과, 해시맵에 넣는 중 그 답변 크기가 maxChoice 크기보다 커질 경우 바로 종료 하는 방식도 있을듯합니다. public int solution(int[] nums) { int answer = 0; Map ketmonMap = new Has.. 2022. 4. 5.
프로그래머스 - 멀쩡한 사각형 해당 문제를 처음에는 기울기를 통해 문제를 풀려고 했었습니다. 예를 들어 예시와 같은 w = 8,h = 12 인 경우에 기울기를 구하면 1.5라는 값이 나왔고, 그림을 그려보니 기울기의 올림 값을 w 와 곱한 갯수가 빠진 것을 알 수 있었습니다. 간단하게 이렇게 문제를 풀어보니, 원하는 결과가 나오지 않았습니다. 예외 케이스를 찾아보니 w = 3, h = 5인 경우가 예외 상황인걸 알 수 있었습니다. 이런식으로 찾다 보니 최종적으로 다음과 같은 결과를 얻을 수 있었습니다. public long solution(int w, int h) { long count = 0; for (int x = 0; x < w; x++) { count += Math.ceil((double) h * (x + 1) / w) - M.. 2022. 4. 4.
프로그래머스 - 오픈채팅방 프로그래머스 (코딩테스트 연습) - 오픈채팅방 해당 문제는 고유한 user_id 값이 주어졌기때문에 user_id를 키로 하고 값을 nickname으로 두는 해시 맵을 구성해 데이터를 저장 한 후 이후 record 를 돌면서 Enter 혹은 Leave 상황일때 메시지 로그를 user_id를 통해 마지막 Nickname 값을 가져와서 셋팅하도록 문제를 풀었습니다. private static final String ENTER_POSTFIX = "님이 들어왔습니다."; private static final String OUT_POSTFIX = "님이 나갔습니다."; private static final String ENTER = "Enter"; private static final String CHANGE =.. 2022. 3. 31.