본문 바로가기

코딩테스트/파이썬

(19)
프로그래머스 level1 다트 게임 문제 설명 변수는 총 세 개로 설정했다. answer는 점수 합계, points는 점수를 저장해놓는 배열, num은 한 번 던질 때 얻은 점수다. for문을 사용하여 dartResult에서 값을 하나씩 빼와서 알파벳인지 확인한다. 알파벳이면 해당 알파벳이 S면 그대로 points에 append하고 D면 제곱을 하여 append하고 T면 세제곱을 하여 append 한다. 마지막으로는 num을 ''으로 초기화한다. dartResult에서 빼온 값이 숫자면 num에 덧붙여준다. 덧붙이는 이유는 한 자리 수만 있는게 아니라 10까지 있으므로 +=을 사용했다. dartResult에서 빼온 값이 알파벳도 아니고 숫자도 아닐 경우에는 해당 값이 *인지 #인지로 나누었다. *일 경우에는 또 두 가지 경우로 나누었는데 ..
프로그래머스 level1 실패율 문제 설명 rate는 실패율이 저장되어 있는 배열이고 counts는 해당 스테이지까지 도달하지 못한 유저의 수다. for문을 사용하여 1부터 전체 스테이지까지 돌고 if문을 사용하여 해당 스테이지에 도달한 유저가 있는지 체크한다. 그래서 있을 경우 해당 스테이지를 도전 중인 유저의 수 / 해당 스테이지를 클리어 한 유저의 수 를 rate에 append 하고 없을 경우에는 0을 append 한다. counts += stages.count(i)는 예를 들어 3번 스테이지까지 도달하지 못한 유저의 수는 1번 스테이지를 도전 중인 사람의 수 + 2번 스테이지를 도전 중인 사람의 수여서 저렇게 계산했다. 모든 실패율을 계산한 후 sort 함수를 사용하여 내림차순으로 정렬한다. sort_rate 함수의 값을 사용하..
프로그래머스 level1 키패드 누르기 문제 설명 입출력 예시 키패드를 좌표로 생각하여 문제를 접근했다. 키패드 1번은 [0,0] , 키패드 2번은 [0,1] ... 키패드 0번은 [3,1] 로 설정했다. 왼쪽 엄지손가락의 좌표인 left를 [3,0]으로 초기화하고 오른쪽 엄지손가락의 좌표인 right를 [3,2]로 초기화했다. 인자 numbers를 for문을 돌려서 i가 1,4,7일 경우 answer에 'L'을 추가하고 left 값을 바꾸고 i가 3,6,9일 경우 answer에 'R'을 추가하고 right 값을 바꿨다. i가 가운데 줄에 있는 번호 2,5,8,0일 경우 right의 좌표값과 left의 좌표값을 i의 좌표값과 비교하여 좌표값들의 차의 절댓값으로 거리를 계산했다. 전체 코드 def solution(numbers, hand): a..