[백준/Python] - 1931번 회의실 배정
·
백준[파이썬]
https://www.acmicpc.net/problem/1931 📜제출 코드import sysinput = sys.stdin.readlineN = int(input())a_list = list()for _ in range(N): s_time, e_time = map(int,input().split()) a_list.append((s_time, e_time))a_list = sorted(a_list, key = lambda x:(x[1],x[0]))init = a_list[0]ans = 1for i in range(1, len(a_list)): if init[1] a_list[i][0]: init = a_list[i] ans += 1print(ans) 위 문제..
[백준/Python] - 4134번 다음 소수
·
백준[파이썬]
https://www.acmicpc.net/problem/4134]📜제출코드 import mathT = int(input())def is_prime(num): if num == 0 or num == 1: return False for i in range(2,int(math.sqrt(num))+1): if num % i== 0: return False return Truefor _ in range(T): N = int(input()) while True: if is_prime(N): print(N) break else: N += 1📜풀이이 문제는 생..
[백준/Python] - 4948번 베르트랑 공준
·
백준[파이썬]
https://www.acmicpc.net/problem/4948📜제출코드 import mathimport sysinput = sys.stdin.readline# 에라토스테네스의 체 def prime(n): # 2부터 sqrt(n) + 1 ==> sqrt(n)까지 # 왜? -> 만약 2n이 20이면 1 2 4 5 10 20인데 # sqrt(20)은 4.xx이다. 그러므로 4까지 구하면 좌우 완벽 대칭이 되는 것이다. for i in range(2, int(math.sqrt(n))+1): if prime_list[i] == True: j = 2 while i * j n: prime_list[i*j] =..
[백준/Python] - 1018번 체스판 다시 칠하기
·
백준[파이썬]
https://www.acmicpc.net/problem/1018 📜제출코드 N, M = map(int, input().split())board = list()res = []for _ in range(N): board.append(input())# 0부터 N, M -7까지for i in range(N-7): for j in range(M-7): draw_1 = 0 draw_2 = 0 for a in range(i, i+8): for b in range(j, j+8): if (a + b) % 2 == 0: #하나의 짝수일때 시작점이 W와 B인 것을 모두 구할 수 있다. ..
[백준/Python] - 1929번 소수 구하기
·
백준[파이썬]
https://www.acmicpc.net/problem/1929📜제출코드 import sysimport mathinput = sys.stdin.readlineM, N = map(int, input().split())#1과 0은 무조건 True이기 때문prime = [True for _ in range(N+1)]prime[0], prime[1] = False, Falsefor i in range(2, int(math.sqrt(N))+1): if prime[i] == True: j = 2 while j * i N: prime[i*j] = False j += 1for i in range(M, N+1): if prime[i] == ..
[백준/Python] - 2485번 가로수
·
백준[파이썬]
https://www.acmicpc.net/problem/2485 📜제출코드 #최대 공약수를 활용해서 푸는 문제import sysinput = sys.stdin.readlineN = int(input())N_list = [int(input())]intervals = []# 유클리드 호제법def gcd(a,b): while b >0: a, b = b, a % b return afor _ in range(1,N): N_list.append(int(input())) intervals.append(N_list[_] - N_list[_-1])# 최대 공약수로 구하는 간격의 초기값을 입력해주고max_num = intervals[0]for i in range(1,len(interv..
[백준/Python] - 24511번 queuestack
·
백준[파이썬]
https://www.acmicpc.net/problem/24511 📜제출코드 from collections import dequeimport sysinput = sys.stdin.readlineN = int(input())A = list(map(int,input().split()))B = list(map(int,input().split()))M = int(input())C = list(map(int,input().split()))q = deque([])for i in range(N): # 큐인 자료구조만 모아주기기 if A[i] == 0: q.append(B[i])#오른쪽으로 갈 수록 나중에 들어온 값으로 처리했다.# ex) deque([1,4])# --> deque([2,1..
[백준/Python] - 1790번 수 이어 쓰기 2
·
백준[파이썬]
https://www.acmicpc.net/problem/1790 📜제출코드 N, K = map(int, input().split())#1의 자리와 숫자 개수 초기화digits, count, start_num = 1, 9, 1while K > digits * count: K -= (digits * count) digits += 1 count *= 10 start_num *= 10num = str(start_num + (K-1) // digits)if int(num) > N: print(-1)else: num_idx = (K-1) % digits print(num[num_idx]) 📜풀이단순한 수학적인 개념과 구현에 대한 개념이 있으면 풀 수 있는 문제이다. 📜..
[백준/Python] - 11399번 ATM
·
백준[파이썬]
https://www.acmicpc.net/problem/11399 제출코드N = int(input())N_list = list(map(int,input().split()))N_list.sort()ans = 0for i in range(N): temp = 0 for j in range(i+1): temp += N_list[j] ans += tempprint(ans) 풀이문제에서 가장 돈 인출하는데 걸리는 시간 가장 작게 걸리는 사람들부터 뽑으니까오름차순으로 정렬해준다. 각 순번마다 걸리는 시간을 구해줘야되니까 2중 for문으로 순번마다 걸리는 시간을 구해줬다.i번째가 걸리는 시간을 다음과 같이 정해주고temp에 걸리는 시간을 다 넣어준다.그리고 마지막에 ans에 누적저장 내가..
[백준/Python] - 24479번 알고리즘 수업 - 깊이 우선 탐색 1
·
백준[파이썬]
https://www.acmicpc.net/problem/24479✅제출코드import syssys.setrecursionlimit(int(1e6))input = sys.stdin.readlineN ,M, R = map(int,input().split())node = [[] for _ in range(N+1)]result = [0] * (N+1)visited = [0] *(N+1)for _ in range(M): u,v = map(int,input().split()) #무방향 그래프이기때문에 연결된 노드들은 해당 노드번호에 바꿔서 넣어준다 node[u].append(v) node[v].append(u)#인접정점은 오름차순으로 방문한다고 했으니 오름차순 정렬해준다.for i in ra..