프로그래머스 | 완주하지 못한 선수 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(participant, completion): for i in completion: if i in participant: participant.remove(i) return ''.join(participant) 어렵지 않은 문제이기 때문에 쉽게 코드를 작성할 수 있었다. 하지만 정확성 테스트는 모두 통과하지만 효율성 테스트는 시간 초과로 실패하였다. 내가 작성한 코드에서 시간을 많이 소요되는 부분을 생각해 보니 for문과 remove임을 알 수 있었다. completi..
프로그래머스 | 숫자 짝꿍 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import Counter def solution(X, Y): x = Counter(X) y = Counter(Y) answer = '' for i in range(10): answer += str(i) * (min(x[str(i)], y[str(i)])) if answer == '': return '-1' answer = ''.join(sorted(answer, reverse=True)) if answer[0] == '0': return '0' else: return an..
프로그래머스 | 기사단원의 무기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def isPrime(x): count = [0] * (x+1) for i in range(1, x+1): for j in range(1, i+1): if i % j == 0: count[i] += 1 return count def solution(number, limit, power): return sum([power if i > limit else i for i in isPrime(number)]) 1부터 number까지의 수가 가지는 약수의 개수를 구하기 위해 isPrime(x) 함수를..
프로그래머스 | 덧칠하기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(n, m, section): range = section[-1] - section[0] + 1 if range > m: answer = sum(divmod(range,m)) else: answer = 1 return answer 주어진 section의 0번째 값과 마지막 -1번의 값을 이용하여 범위를 구하였다. 그 범위가 롤러의 길이 m보다 크면 m으로 나눴을 때 몫과 나머지를 더하면 section[0]부터 section[-1]까지 칠해야 하는 횟수가 된다. m보다 작..
프로그래머스 | 2021 Dev-Matching: 웹 백엔드 개발자(상반기) | 로또의 최고 순위와 최저 순위 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(lottos, win_nums): answer = [0,0] # 최고순위, 최저순위 c = 0 # 일치한 숫자 개수 n = lottos.count(0) # 알아볼 수 없는 번호(0) 개수 lot = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6} for i in lottos: if i in win_nums: c += 1 answer[0], answer[1] = lot[c+n], lot[c] return answer 실제 코딩테스트에서 진행했던 문제들을 풀 때마다 이..
백준 24444 | BFS | 너비 우선 탐색 1 [파이썬 python]
·
Algorithm/백준
24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net 코드 import sys from collections import deque sys.setrecursionlimit(10 ** 6) input = sys.stdin.readline n, m, r = map(int, input().split()) # 정점의 수, 간선의 수, 시작 정점 graph = [[] for _ in range(n+1)] visited = [0] * (n+1) # 방문..