Loading...
2021. 8. 3. 22:49

프로그래머스 Weekly Challnege

# 갑자기 프로그래머스에서 새로운 컨텐츠를 실시한다고 메일이 와서 들어가 보았다. # 이번 주 부터 프로그래머스에서 새로 실시하는 Weekly Challenge이다. 그냥 심심풀이로 매주 한 문제씩 풀면 좋을 것 같다. # 1주차 https://programmers.co.kr/learn/courses/30/lessons/82612?language=python3 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr def solution(price, money, count): answer = price *..

[Python] 프로그래머스 - 로또의 최고 순위와 최저 순위

programmers.co.kr/learn/courses/30/lessons/77484?language=python3 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 최근에 진행된 "2021 Dev-Matching: 웹 백엔드 개발자" 코딩테스트에 출제된 문제이다. def solution(lottos, win_nums): rank = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6} cnt = 0 super = lottos.count(0..

[Python] 프로그래머스 - 이진 변환 반복하기

programmers.co.kr/learn/courses/30/lessons/70129?language=python3 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 간단하게 문제에서 요구하는대로 풀면 되는 문제이다. 1. cnt에 s문자열 중 0의 갯수를 세서 증가시키고, s에서 0을 제거해준다. 2. new_s에 s의 길이를 2진법으로 변환하면 0b110 이런꼴로 나오기때문에 앞에 0b를 없앤 2번째 인덱스부터 저장해준다. 3. new_s가 '1'이 될때까지 반복 def solution(s): answer = [] cnt, t = 0, 0 while True: t += 1 cnt += s.count('0') s = s.replace('0', '') new_s = bin(len(..

[Python] 프로그래머스 - 정수 삼각형

programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 1. 먼저 triangle 배열과 같은 모양의 dp 2차원 배열을 만든다. 2. 마지막 줄부터 올라갈 것이므로 dp의 마지막줄은 triangle의 마지막 줄과 같게 만들어준다. 3. 마지막에서 두번째 줄부터해서 dp[i][j]에 (밑의 두 숫자 중 큰 값 + triangle[i][j]값)을 넣어준다. 4. 최종적으로 맨 윗줄에 최댓값이 저장되므로 dp[0][0]을 return해준다. def solution(triangle): length = len(t..

[Python] 프로그래머스 - 주식가격

programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 스택이 개념은 쉬운데, 마스터하기는 매우 어려운 자료구조인 것 같다. (나만 그런가..) 스택을 활용해 푸는 문제들이 유독 어렵게 느껴진다... 1. answer에 len(prices)-1부터 0까지 넣어준다. prices길이가 5이면 answer = [4, 3, 2, 1, 0] 2. prices가 [1, 2, 3, 2, 3]일 때, ..

[Python] 프로그래머스 - 소수 찾기

programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 처음에 numbers에 있는 숫자들에 대해 모든 경우의 수를 구해야 한다. 이 문제를 풀고 나서 다른 사람들의 풀이를 보니 다양한 방법이 존재했다. 나는 itertools모듈의 permutations함수를 사용했다. 1. numbers에 있는 숫자를 num배열에 넣고 dab에도 넣어준다. (한자리 수는 따로 처리) -> permutations(num, 1)을 하..

[Python] 프로그래머스 - 가장 먼 노드

programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 백준에서 많이 풀어본 그래프 문제들과 비슷하다. 처음에 DFS로 풀어보려다 실패하고 BFS로 풀었다. from collections import deque def solution(n, edge): graph = [[] for _ in range(n+1)] dist = [0] * (n+1) visited = [False] * (n+1) q = deque() q.append(1) visited[1] = True for i in edge: graph[..