[백준 1004] 어린왕자
·
알고리즘 문제풀이
www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net import sys import math from collections import deque input = sys.stdin.readline T = int(input()) def is_in(p,x,y): cx,cy,r = p len_x = abs(x-cx) len_y = abs(y-cy) rg = math.sqrt(len_x**2 + len_y**2) if rg
[백준 15954] 인형들
·
알고리즘 문제풀이
www.acmicpc.net/problem/15954 15954번: 인형들 첫 번째부터 세 번째까지의 인형을 선택하면 표준편차는 2/3의 양의 제곱근이 되고, 이 때 표준편차가 최소가 된다. 두 번째부터 네 번째까지의 인형을 선택하는 경우와, 세 번째부터 다섯 번째 www.acmicpc.net from decimal import Decimal N, K = map(int, input().split()) arr = list(map(int,input().split())) sums = [0 for i in range(N+1)] exps = [0 for i in range(N+1)] for i in range(1, len(arr)+1): sums[i] = sums[i-1] + arr[i-1] exps[i] = e..
[백준 1188] 음식 평론가
·
알고리즘 문제풀이
www.acmicpc.net/problem/1188 1188번: 음식 평론가 첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100) www.acmicpc.net import math N,M = map(int,input().split()) gcd = math.gcd(N,M) print(M-gcd) 풀이 소시지를 하나로 다 이어붙인다면 n=1일 때 m-1번 잘라야 같은 크기의 소시지로 나눠진다. N,M의 최대공약수를 구하면 [최대공약수-1]이 소시지를 이어붙였을 때 이미 잘려있는 횟수가 된다. 최악의 경우 최대공약수가 1일때 이미 잘려있는 수는 0회 이므로 m-1 이 답이된다. 즉 M - gcd(N,M) 가 답이다. 시간복잡도 유클리드 호제법을 사용한다면 비교대상의 두 수 a..
[2021 KAKAO BLIND RECRUITMENT] 합승 택시 요금
·
알고리즘 문제풀이
programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr import heapq INF = 987654321 def f(graph,s,n): dist = ..
[2018 KAKAO BLIND RECRUITMENT] 셔틀버스
·
알고리즘 문제풀이
programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr def append_waiting(start,end,datetimes): global waiting while datetimes: if start
[백준 17218] ⚾
·
알고리즘 문제풀이
www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net import itertools,sys input = sys.stdin.readline arr = [1,2,3,4,5,6,7,8] p = itertools.permutations(arr, 8) N = int(input()) mat = [list(map(int,input().split())) for i in range(N)] def game(start,t,arr): out = 0 score = 0 b1,b2,b3 = 0..
[백준 1013] Contact
·
알고리즘 문제풀이
import sys input = sys.stdin.readline T = int(input()) for _ in range(T): code = input().rstrip() l = len(code) i = 0 ch = True while i < l : # 시작이 0인경우 바로 뒤에 1이 안오면 실패 if code[i] == "0": #남은 수가 2개가 안될 때 실패(01이 최소 길이기 때문) if l-i < 2: ch=False break elif code[i+1] != "1": ch=False break else: i+=2 # 시작이 1이 올경우 else: #남은 수가 4개가 안될 때 실패(1001이 최소 길이기 때문) if l-i < 4: ch=False break # 다음 2개가 0이 아닐결우 실..
[백준 2257] 화학식량
·
알고리즘 문제풀이
www.acmicpc.net/problem/2257 2257번: 화학식량 첫째 줄에 화학식이 주어진다. 화학식은 H, C, O, (, ), 2, 3, 4, 5, 6, 7, 8, 9만으로 이루어진 문자열이며, 그 길이는 100을 넘지 않는다. www.acmicpc.net s = input() d = { "H" : 1, "C" : 12, "O" : 16 } stack = [] for i in s: if i in d: stack.append(d[i]) elif i == "(": stack.append(i) elif i == ")": temp = 0 while True: p = stack.pop() if p == "(": break temp += p if temp == 0: continue else: stack..
[백준 5347] LCM (최소공배수)
·
알고리즘 문제풀이
www.acmicpc.net/problem/5347 5347번: LCM 첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ5347 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..
[백준 10610] 30
·
알고리즘 문제풀이
www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; public class BJ10610 { public static void main(String[] args) throws IOException { Bu..
[2019 카카오 개발자 겨울 인턴십] 불량 사용자
·
알고리즘 문제풀이
programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr def change_v_to_bit(v): bit = "" for i in range(len(v)): bit += str(v[i]) return bit def is_in(bit): global result if bit in result: return True return False def match(ban,user): if len(ban) != len(user): return..
[백준1238] 파티
·
알고리즘 문제풀이
www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net import heapq,sys input = sys.stdin.readline N,M,X = map(int,input().split()) INF = 987654321 graph = [[] for i in range(N+1)] for _ in range(M): s,e,w = map(int,input().split()) graph[s].append([w,e]) def f(graph,S..