본문 바로가기

프로그래머스

(29)
[해시] 프로그래머스 L1 '신고 결과 받기' (Python) https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 1. 답을 id_list 순서대로 적어야 하므로 id_list 개수만큼 [0] 추가 2. 한 유저가 같은 유저를 여러 번 신고한 경우는 신고 횟수 1회로 처리하기 때문에 set()으로 중복 제거 3. 신고한 유저를 딕셔너리-set()으로 선언 => 신고한 유저는 여러명일 필요가 없어서 4. 신고당한 유저를 딕셔너리-int()로 선언 5. 정지된 유저를 받..
[기타] 프로그래머스 L1 '키패드 누르기' (Python) 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. 키패드의 좌표를 변수로 지정한다 2. 왼쪽, 오른쪽 시작 위치를 *, #으로 지정한다 3. 1,4,7일 때는 왼손, 3,6,9일 때는 오른손을 출력한다 4. 이외 숫자를 누를 때는 현재 양쪽 손의 거리(손좌표x-숫자좌표x) + (손좌표y-숫자좌표y..
[진법 변환] 프로그래머스 L1 '3진법 뒤집기' (Python) https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 1. 정수를 3진법으로 구하고 그 값의 앞뒤를 반전시키고 [::-1] 다시 10진법으로 표현한다. def solution(n): answer = '' i=1 three = [1] answer2 = 0 while 3**i
[순열과 조합] 프로그래머스 L1 '두 개 뽑아서 더하기' (Python) https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 1. combinations을 이용해서 조합 만들기 2. 중복되는 문자열 제거 3. 숫자를 더한 값 출력 from itertools import combinations, permutations def solution(numbers): s = set() num = set(combinations(numbers,2)) ..
[탐욕법] 프로그래머스 L1 '최소직사각형' (Python) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 1. 가로와 세로 길이를 비교해서 길이가 작은건 세로, 긴건 가로에 놓는다. def solution(sizes): answer = 0 w = 0 h = 0 for size in sizes: if size[0]>size[1]: if w
[구현] 프로그래머스 L1 '다트 게임' (Python) https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 1. 문자가 숫자면 점수에 추가. 단, 10일 경우 고려 2. 문자가 문자면 보너스 룰 적용 3. 문자가 기호면 옵션 룰 적용 def solution(dartResult): answer = 0 score = [] for idx, i in enumerate(dartResult): if i.isnumeric(): score.append(int(i)) #if score[-1]==0 and score[-2]==1 and dartResult[idx-1]+dartResult[idx]=="10": if dartResult[idx-1]+dartRe..
[정렬] 프로그래머스 L1 '문자열 내 마음대로 정렬하기' (Python) https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 1. 문자열의 n번째 숫자 기준으로 정렬 2. n번째 문자가 같은 경우 오름차순으로 정렬 def solution(strings, n): answer = [] hashs = {} for i in strings: hashs[i] = i[n] hashs = dict(sorted(hashs.items(..
[소수의 판별] 프로그래머스 L1 '소수 찾기' (Python) https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 1. 에라토스테네스의 체 공식으로 소수 구하기 def solution(n): answer = 0 # 에라토스테네스의 체 초기화: n개 요소에 True 설정(소수로 간주) sieve = [True] * (n+1) # n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사 m = int(n ** 0.5) for i in ran..

LIST