본문 바로가기

Level 111

[Python] 실패율 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 풀이 우선 입력받은 stages를 오름차순 정렬하여 각 스테이지(i)마다 클리어하지 못한 사람을 구해서 실패율을 구했습니다. 그 다음으로 클리어하지 못한 사람의 수를 총 플레이어의 수에서 빼어 다음 스테이지에서의 실패율을 구하게했습니다. 마지막으로 sorted를 사용하여 실패율과 해당 스테이지가 저장된 dict 자료형인 rate를 문제에서 요구하는대로 내림차순으로 정렬하고 list 자료형인 answer에 저장하게하여 rate의 key값으로 저장되있던 스테이지 번.. 2021. 3. 6.
[Python] 비밀지도 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 파이썬의 format()을 사용하여 비트연산을 한 결과를 이진수로 바꾸어 문자열로 저장해 주었습니다. 이때, 이진수의 길이는 n개를 필요로 하지만 비트의 앞이 0일 경우 0을 빼고 1인 부분부터 이진수를 만들기 때문에 zfill()을 이용해 0이 빠진 부분에 다시 0을 채웠습니다. 마지막으로 정규표현식 re의 sub()를 사용하여 비트가 1인 부분을 '#' 으로 0인 부분을 ' ' 으로 바꾸어 해결했습니다. 이진수로 바꿀때 bin()을 사용하여 이진.. 2021. 2. 28.
[Python] 키패드 누르기 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 스마트폰에서의 키패드의 [i, j]위치를 미리 리스트에 초기화 하여 만약 2, 5, 8, 0을 누르게 됬을 때, 점과 점사이의 거리를 구할 수 있게 하여 해결했습니다. 처음 시작할 때 왼쪽 손이 위치한 '*'의 위치와 오른 손이 위치한 '#'의 [i, j] 위치를 꼭 초기화 해야함을 주의해야 합니다. 코드 def solution(numbers, hand): answer = '' phone = [[1, 4, 7], [2, 5, 8, 0], [3, 6,.. 2021. 2. 27.
[Python] 2016년 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 풀이 총 일수를 구하고 일주일은 7일 이므로 총 일수에 7을 나머지연산하여 해결했습니다. 코드 def solution(a, b): answer = '' month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] day = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"] total_day = b for i in range(0, a - 1): .. 2021. 2. 21.
[Python] K번째수 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 풀이 리스트의 slice를 이용하여 commands에 주어진 i에서 j까지 array를 잘라 새로운 리스트를 만들고 리스트의 sort()를 사용하여 새로운 리스트에서 오름차순으로 정렬된 k번째 수를 구하여 해결했습니다. 코드 def solution(array, commands): answer = [] for command in commands: slice_arr = array[command[0] - 1:command[1]] slice_arr.sort() answer.append(slice_arr[command[2] - 1]) r.. 2021. 2. 20.
[Python] 체육복 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 풀이 여벌의 체육복을 가져왔으면서 도난당한 경우를 처리하기 위해서 lost와 reserve 리스트를 이용해서 lost_student, reserve_student 리스트를 만들었습니다. 다음으로 students 리스트를 학생 수 만큼 크기를 만들고 주변에 여벌이 있는 학생의 경우 reserve_student에서 제거하여 빌리게 하고 주변에 여벌이 있는 학생이 없는 경우 해당 학생은 체육복이 없으므로 students 리스트에서 삭제하여 students의 크기로 체육.. 2021. 2. 13.