본문 바로가기
728x90

알고리즘/프로그래머스4

[Java] 신고 결과 받기 - Kakao 2022 Blind Recruitment https://programmers.co.kr/learn/courses/30/lessons/92334?language=java 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65.. 2022. 3. 12.
[python] 징검다리 건너기 (2019 카카오 개발자 겨울 인턴십) [한줄평] 정확성과 더불어 효율성을 요구하는 문제는 대비할 수 있는 풀이들이 많다. hash나 이분 탐색 등.. 꼭 생각을 할 수 있어야 한다. [풀이] 0. 문제를 풀기 전 한 생각 직관적으로 봤을 때 전체 탐색을 하면 정확성은 만족 할 수 있을 것 같지만, 효율성을 요구하는 문제이므로 당연하게도(?) 전체 탐색을 하면 안 될 것 같다. (전체 탐색 + DP로 안될 것 같은 문제는 이분 탐색을 사용하면 NlonN까지 시간 복잡도를 줄일 수 있다는 것을 알고 있으므로 이분 탐색을 어떻게 해야될까? 라는 생각을 하면서 ...) 게다가 '최대'로 건널 수 있는 사람의 수를 구하라고 했기 때문에, 사람 수를 이용할 수 있지 않을까? 라는 생각을 하였다. 1. 사람 수를 기준으로 이분 탐색을 진행 할 것이므로,.. 2021. 9. 2.
[python] 튜플 (2019 카카오 개발자 겨울 인턴십) [한줄평] 직관적인 문제였다. 문자열을 가공하기 쉬운 형태로 변형하는게 귀찮았을 뿐 [풀이] 0. 문제를 풀기 전 한 생각 => {A1}, {A1, A2}, ... {A1, A2, ... An} 순으로 만들어진 집합이므로 일단 숫자를 구분해준 후, 집합의 길이가 작은 순으로 정렬을 하면 되지 않을까? 한가지 크기의 집합은 ONLY 1개니까. => 크기 순으로 정렬된 집합에서 맨 첫번째 오는 집합 (크기가 1인 집합, {A1})은 무조건 튜플의 맨 첫번째 숫자겠다. => 그 다음 나머지 집합에서 A1을 없애주면, 크기가 2인 집합은 A1을 지움으로써 크기가 1인 집합이 될테니 그것이 바로 튜플의 두 번째 숫자겠다. => ... 이렇게 해서 맨 끝까지 돌리면 되지 않을까? 를 생각하고 진행하였다. 1. 일단.. 2021. 8. 31.
[python] 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴십) [한줄평] 경우를 나누어 잘 따라간다면 비교적 쉽게 풀 수 있던 문제였다. [풀이] 1. 가로 축으로 입력 받은 board list를 세로 축으로 읽은 'box'라는 리스트를 만들었다. 2. box는 번호가 1부터 시작하므로, moves에서 입력받은 숫자에 -1을 해준 것이 몇 번째 box인지를 나타낸다. 3. 만약 박스가 비었다면, pass한다. # exsub = 현재 바구니에 맨 위에 있는 인형, sub = 이제 바구니에 넣어야 할 인형 4. 박스가 비지 않았고, exsub != sub 인 경우엔, 바구니에 sub를 추가하고 exsub을 바꿔준다. 5. 박스가 비지 않았고, exsub == sub인 경우엔, 바구니에 sub을 넣지 않고 exsub을 지운 뒤 answer++ 해준다. 6. 이 때 바구니.. 2021. 8. 31.
728x90