본문 바로가기

전체

(156)
[프로그래머스/Python] 올바른 괄호(스택) 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호 programmers.co.kr def solution(s): answer = True stack = [] if len(s) % 2 != 0: return False for i in s: if stack and i == ')': stack.pop() if i == '(': stack.append(i) return len(stack)==0
[프로그래머스/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..