본문 바로가기

Programming

(89)
[프로그래머스/Python] 실패율 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr import operator def solution(N, stages): failure = {} for i in range(1, N+1): nominator=0 denominator=0 for j in stages: if j == i: nominator += 1 denominator += 1 if j > i: denominator += 1 if denominator == 0: failure[i] = 0 else: failure[i] = (nominator/den..
[프로그래머스/Python] 이상한 문자 만들기 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr def solution(s): answer = '' s = list(s) cnt = 0 for i in range(len(s)): if s[i] == ' ': answer += s[i] cnt = 0 else: if cnt%2 == 0: answer += s[i].upper() cnt += 1 else: answer += s[i].lower() cnt += 1 return answer 정석풀이 def solution(s): answer = [] fo..
[프로그래머스/Python] 가운데 글자(구현) 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr def solution(s): answer = '' mok, namo = divmod(len(s),2) if namo == 0: # 짝수 answer = s[mok-1:mok+1] else: # 홀수 answer = s[mok] return answer
[프로그래머스/Python] 3진법 뒤집기(진법변환) 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 진법변환 연습하는 문제 def ten2three(n): s = "" while n > 0: mok , namo = divmod(n, 3) s += str(namo) # 뒤집어서 저장 n = mok return s def three2ten(n): out = 0 for i, num in enumerate(n): out += int(num) * pow(3, len(n)-i-1) return out def solution(..
[프로그래머스/Python] 두 개 뽑아서 더하기(조합) 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 오름차순으로 출력한다는 점만 주의하자. import itertools def solution(numbers): answer = set() combi = list(itertools.combinations(numbers, 2)) for a, b in combi: answer.add(a+b) return sorted(list(answer))​
[프로그래머스/Python] 여행경로(DFS) 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 간선정보를 하나씩 지워가면서 answer에 경로를 담는다. 어려워...ㅜㅜ 다음에 다시 풀어야지 import collections def solution(tickets): tickets.sort(reverse=True) routes = collections.defaultdict(list) for t1,t2 in tickets: routes[t1].append(t2) answer = [] stack = ["ICN"] while stack: top = stack[-1] if top not..
[프로그래머스/Python] 나머지 한 점(해시/비트연산자) 알고리즘 문제 해설 - 나머지 한 점 프로그래머스의 모의테스트는 프로그래머스의 시스템에 익숙해지기 위한 테스트이며, 문제 자체는 2018 1ST KAKAO BLIND RECRUITMENT와 전혀 관계없습니다. 다만 모의테스트의 풀이에 대한 요청이 있어 programmers.co.kr 프로그래머스의 데모테스트 문제 풀이 1. 해시 x좌표가 각각 2번씩 등장하여야 사각형을 이룰 수 있으므로 1번 등장하는 좌표를 찾아서 return하면 된다. 이건 y좌표도 마찬가지. import collections def solution(v): answer = [] count_x = collections.defaultdict(int) count_y = collections.defaultdict(int) for i in v:..
[프로그래머스/Python] 더 맵게(힙) 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 이 문제는 음식을 섞을 때마다 다시 정렬을 계속 해야하는 문제를 극복하기 위해 우선순위큐를 이용한 풀이를 할 수 있다. python에서 우선순위 큐는 queue 모듈의 PriorityQueue를 통해 사용할 수 있지만 결국 이 클래스의 내부 구조는 heapq를 사용하도록 구현되어 있으므로 heapq를 이용하여 풀이하면 된다. import heapq def solution(scoville, K): answer = 0 heapq.heapify(scovi..