본문 바로가기

전체

(155)
[프로그래머스/Python] 숫자의 표현 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 끝까지 다 볼 필요는 없고 반만 보면 된다. def solution(n): nums = [i for i in range(0,n+1)] answer = 1 last = n//2 if n%2==0 else n//2+1 for i in range(1,last+1): left, right = i, i+1 while right = n: if tmp_sum == n: answer +=1 break else: right += 1 return answer
[프로그래머스/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:..