본문 바로가기

카카오

[2019 카카오 신입 공채 1차 코딩 테스트] 2. 실패율 - python 처음에 접근한 방법은 stages를 정렬한 뒤에 visit라는 배열에 해당 스테이지에 방문한 사람의 수를 저장하고 passCnt에는 해당 스테이지를 통과한 사람의 수를 저장했다. visit는 stage를 역순으로 정렬한 뒤에 아래 코드이 반복문을 사용하여 초기화를 해주었고, passCnt도 초기화 해준 뒤 실패율이 아닌 스테이지 성공률을 buffer 리스트에 튜플형태로 저장하였다. 그리고 이를 정렬하여 answer에 저장하는 방법을 사용했는데, 채점결과 70점대로 통과하였다. 이를 개선하여 passCnt 없이 성공률을 계산하였는데 이는 visit를 모두 채워넣었을때 i번 스테이지 성공률 = visit[i+1] / visit[i] 이기 때문이다. 하지만 이를 적용해도 채점결과가 변하지 않았다. 아래는 해당..
[2019 카카오 신입 공채 1차 코딩 테스트] 1. 오픈채팅방 - python 파이썬의 딕셔너러를 이용하여 해결했다. 구현만 하면 되는 문제인데 딕셔너리를 효율적으로 사용하지 않으면 시간초과가 나올수도 있다. 12345678910111213141516171819202122232425def solution(record): answer = [] buffer = [] chatroom = dict() for i in record: tmp = i.split() op = tmp[0] uid = tmp[1] if op == "Enter": nic = tmp[2] chatroom[uid] = nic buffer.append([uid, "님이 들어왔습니다."]) elif op == "Leave": buffer.append([uid, "님이 나갔습니다."]) else: nic = tmp[2] cha..
[BOJ]15954 인형들 - python https://www.acmicpc.net/problem/15954 단순한 완전탐색으로 해결했습니다. 처음에 제출할때는 문제의 조건을 하나 놓쳐서 틀렸는데 주어진 조건이 K이상의 연속된 위치에 인형들을 선택하는것인데 K이상 이라는 조건을 놓쳐서 코드를 수정했다. 처음에 백준 사이트에 제출할때 python3로 제출했을때는 시간 초과가 났었는데 pypy3로 제출하니 시간초과가 발생하지 않고 통과되었다. 해당 문제의 FAQ를 정리한 글이 있어서 이를 참고하여서 문제를 해결했다. https://www.acmicpc.net/board/view/29582 코드는 다음과 같다 12345678910111213141516171819202122232425262728293031import sysimport mathfrom ..
[BOJ]15953 상금 헌터 - python https://www.acmicpc.net/problem/15953 단순한 구현 문제이다. a, b가 0일때 예외처리를 해주지 않아서 한번 틀린게 아쉽다. 1234567891011121314151617181920212223242526272829303132import sys fest2017Prize = ((500, 1), (300, 2), (200, 3), (50, 4), (30, 5), (10, 6))fest2018Prize = ((512, 1), (256, 2), (128, 4), (64, 8), (32, 16)) fastinput = lambda: sys.stdin.readline().rstrip() T = int(fastinput()) for _ in range(T): a, b = map(int, ..