백준 24479 | DFS | 깊이 우선 탐색 1 [파이썬 python]
·
Algorithm/백준
24479번: 알고리즘 수업 - 깊이 우선 탐색 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 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) # 방문 순서 저장. 0이면 방문 X c = 1 def dfs(..
프로그래머스 | 카드 뭉치 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(cards1, cards2, goal): g1 = [] g2 = [] for i in goal: if i in cards1: g1.append(i) if i in cards2: g2.append(i) if g1 == cards1 and g2 == cards2: return 'Yes' elif g1 == cards1 and len(g2) == 0: return 'Yes' elif len(g1) == 0 and g2 == cards2: return 'Yes' else: r..
프로그래머스 | 2018 KAKAO BLIND RECRUITMENT | [1차] 다트 게임 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import re def solution(dartResult): dr = re.split('([0-9][0-9]?[A-Z][#|*]?)', dartResult) dr = ' '.join(dr).split() # print(dr) num = [] for i in dr: n = 0 for j in range(len(i)): if i[j] == 'S': n = (int(i[:j]) ** 1) if i[j] == 'D': n = (int(i[:j]) ** 2) if i[j] == 'T': n =(int(i[:j..
프로그래머스 | 2019 KAKAO BLIND RECRUITMENT | 실패율 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 길기 때문에 접근법과 풀이과정에 대한 설명만 남깁니다. 처음 시도한 코드 def solution(N, stages): fail = [0] * N # 실패율 for i in range(N): fail[i] = [i+1, stages.count(i+1) / sum([s>=(i+1) for s in stages])] return [i[0] for i in sorted(fail, key=lambda x:x[1], reverse=True)] 처음 접근한 방식은 다음과 같다. 각 단계별 실패율을 담을 리스트 fa..
프로그래머스 | 과일 장수 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(k, m, score): # 사과 최대 점수, 한 상자 사과 개수, 사과 점수 answer = 0 # 이익 score.sort(reverse=True) for i in range(0, len(score), m): if len(score[i:i+m]) == m: answer += min(score[i:i+m]) * m return answer 문제 이해가 너무 어려웠다... 분명히 이 글을 읽는 사람도 문제 이해가 안 되어서 찾아봤을 것이라 생각한다. 나 역시도 다른 분들의 글을 읽..
프로그래머스 | 모의고사 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 import numpy as np import math def solution(answers): supoza1 = [1,2,3,4,5] * math.gcd(len(answers), 5) supoza2 = [2,1,2,3,2,4,2,5] * math.gcd(len(answers), 8) supoza3 = [3,3,1,1,2,2,4,4,5,5] * math.gcd(len(answers), 10) supo = [] supo.append(sum(np.equal(answers, supoza1[:len..