프로그래머스(53)
-
[Programmers] 성격 유형 검사하기
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단한 구현 문제이다. 해결하는 방법에는 여러 방법이 있겠지만 필자는 HashMap으로 성격 유형 검사 결과를 관리했다. 고려해야할 부분은 성격 유형이 항상 일관되게 주어지지 않아 두 문자를 구별해야 하는 점이다. 이는 choice 값에서 4를 빼서 해결했다. choice - 4한 값이 0보다 크면 뒷 문자이고, 작으면 앞 문자라고 판단했다. 그 외에 특별히 어려운 점은 없다. 코드 ..
2023.08.03 -
[Programmers] 개인정보 수집 유효기간
https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제 이해 자체는 어렵지 않으나 날짜에 대한 처리를 잘 해야 하는 문제이다. 약관 종류와 약관 별 유효기간, 수집한 개인 정보의 수집 일자, 약관 종류, 오늘 날짜가 주어진다. 개인정보 수집 일자와 유효 기간을 더한 값이 오늘보다 더 긴 경우는 아직 유효기간이 지나지 않았으므로 파기하지 않는다. 대신 더 짧은 경우 유효 기간이 지났으므로 파기해야 한다. 이때 파기해야하는 개인정보 번호..
2023.08.02 -
[Programmers] 요격 시스템
https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어진 배열에서 겹치는 구간이 가장 많도록 하는 그리디 문제이다. 풀이 방법 먼저 끝나는 지점을 기준으로 오름차순 정렬한다. 그리고 정렬된 targets 배열을 순회하면서 시작하는 지점이 현재 끝나는 지점보다 크거나 같으면, 즉 겹치는 구간이 끝나면 새로운 구간의 시작이므로 카운트를 추가하고 끝나는 구간을 해당 개구간의 끝나는 지점으로 변경한다. import java.util.*; c..
2023.04.22 -
[Programmers] 크레인 인형뽑기 게임 - Java
https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제 설명 이 문제는 간단한 인형뽑기 게임이다. 크레인으로 인형을 하나씩 뽑고 그 인형을 바구니에 담아놓는다. 그러다 맨 위에 있는 인형과 새로 들어온 인형이 같으면 두 인형은 사라지고 포인트가 2점 쌓인다는 심플한 게임이다. 해결 과정 먼저 바구니부터 생각해보자. 뽑아온 인형이 하나씩 쌓인다... 뭔가 떠오르는 자료구조가 있지 않은가? 바로 스택이다. 스택은 LIFO 구조로 되어있는 자..
2021.12.14 -
[Programmers] 키패드 누르기 - Java
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 1단계 문제라서 쉽게 해결될 줄 알았는데 생각보다 애먹었다. 처음에는 키패드 숫자로 계산해서 거리를 찾으려고 했으나 나 실패하였고, 배열로 하려고 잠깐 생각했었지만 복잡해질 것 같았다. 그래서 Position이라는 객체를 만들어서 거리 계산을 해결했다...
2021.12.13