목록Development/Algorithm & Coding Test (189)
컴공생의 다이어리
[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python) from collections import deque def solution(queue1, queue2): queue1, queue2 = deque(queue1), deque(queue2) q1_sum, q2_sum = sum(queue1), sum(queue2) max_cnt, cnt = len(queue1) * 3, 0 while (queue1 and queue2) and max_cnt != cnt: if q1_sum == q2_sum: # 두 큐 합이 같으면 종료 return cnt elif q1_sum > q2_sum: # queue1의 합이 더 크면 queue1에서 빼기 temp = queue1.popleft() queue2.app..
백준 6497번 : 전력난 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] def union(parent, a, b): a = find_parent(parent, a) b = find_parent(parent, b) if a < b: parent[b] = a else: parent[a] = b while True: m, n = map(int, input().split()) # m: 집의 수, n: 길의 수 if m == 0 and n == 0: break parent =..
백준 1972번 : 놀라운 문자열 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline while (text := input().rstrip()) != "*": check, length = False, len(text) for i in range(length-1): pairs = set() # D-쌍 for j in range(length-i-1): temp = text[j] + text[j+i+1] if temp in pairs: # 유일하지 않은 경우 print(f"{text} is NOT surprising.") check = True break else: pairs.add(temp) if check: break else: # 유일한 경우 print(f"{t..
백준 1043번 : 거짓말 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) # n : 사람의 수, m : 파티의 수 know_truth = set(map(int, input().split()[1:])) # 이야기의 진실을 아는 사람의 번호 party = [set(map(int, input().split()[1:])) for _ in range(m)] # 각 파티에 오는 사람의 번호 for _ in range(m): for p in party: # 각 파티에 대해 if p & know_truth: # 진실 아는 사람 있다면 know_truth |= p # 진실 아는 사람에 현재 파티에 있는 사람 추가 ..
백준 4386번 : 별자리 만들기 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] def union(parent, a, b): a = find_parent(parent, a) b = find_parent(parent, b) if a < b: parent[b] = a else: parent[a] = b n = int(input()) # 별의 개수 stars = [tuple(map(float, input().split())) for _ in range(n)] # 별의 좌표 ..
[프로그래머스] 완주하지 못한 선수 - 자바스크립트(JS) function solution(participant, completion) { participant.sort(), completion.sort(); for (let i = 0; i < participant.length; i++) { if (participant[i] !== completion[i]) return participant[i]; } } https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers...
백준 14621번 : 나만 안되는 연애 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline def find_parent(parent, x): if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] def union(parent, a, b): a = find_parent(parent, a) b = find_parent(parent, b) if a < b: parent[b] = a else: parent[a] = b n, m = map(int, input().split()) # n : 학교의 수, m : 도로의 개수 univ = list(input().split()) # 대학교 정..
[프로그래머스] K번째수 - 자바스크립트(JS) function solution(array, commands) { return commands.map((v) => { return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b)[v[2] - 1]; }); } solution([1, 5, 2, 6, 3, 7, 4], [[2, 5, 3], [4, 4, 1], [1, 7, 3]]); https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. progra..
[프로그래머스] 가장 큰 수 - 자바스크립트(JS) function solution(numbers) { let answer = numbers .map((v) => String(v)) .sort((a, b) => (b + a) - (a + b)) .join(""); return answer[0] === "0" ? "0" : answer; } solution([6, 10, 2]); solution([3, 30, 34, 5, 9]); https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요...
백준 4097번 : 수익 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline while n := int(input()): arr = list(int(input()) for _ in range(n)) # 수익 리스트 for i in range(1, n): arr[i] = max(arr[i], arr[i] + arr[i - 1]) print(max(arr))