From d5e145048aab18d83c1e5e6c3f6dea78cbbeebf1 Mon Sep 17 00:00:00 2001 From: SeongJoonhee Date: Wed, 24 May 2023 13:49:26 +0900 Subject: [PATCH 01/10] =?UTF-8?q?#26=20:=2010026=5F=EC=A0=81=EB=A1=9D?= =?UTF-8?q?=EC=83=89=EC=95=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...01\353\241\235\354\203\211\354\225\275.py" | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" new file mode 100644 index 0000000..91089b7 --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" @@ -0,0 +1,78 @@ +#2023-05-18-Week6-과제 +#10026_적록색약 + +''' +입력 : +1. 입력 크기 1 ≤ N ≤ 100 +2. 그리드 입력 (N*N) + +출력 : +적록색약 아닌 사람의 구역, 적록색약인 사람의 구역 +''' + + + + +#런타임 에러 발생 + +from collections import deque +import sys +import string + +sys.setrecursionlimit(100000) #재귀 +input=sys.stdin.readline() + +N = int(input()) +matrix = [list(input().rstrip()) for i in range(N)] + +visited = [[0]*N for i in range(N)] #방문 안 한 상태로 설정 + + +def dfs(x,y) : + + move_x = [-1,1,0,0] + move_y = [0,0,-1,1] + + color = matrix[x][y] #R, G, B + visited[x][y] = True #방문 + + for i in range(4) : #상하좌우 + new_x = x + move_x[i] + new_y = y + move_y[i] + if {(0 <= new_x <= N - 1) + and (0 <= new_y <= N - 1) + and (visited[new_x][new_y] == False)}: + if color == matrix[new_x][new_y] : + dfs(new_x,new_y) + +#정상 +normal = 0 + +for x in range(N) : + for y in range(N) : + if visited[x][y] == False : + dfs(x,y) + normal += 1 + +#적록색약 +noRG = 0 +for x in range(N) : #적록색약 기준으로 색 변경 + for y in range(N) : + if matrix[x][y] == 'R' or matrix[x][y] == 'G' : + matrix[x][y] == 'g' + +visited = [[0]*N for i in range(N)] #방문횟수 초기화 +for x in range(N) : + for y in range(N) : + if visited[x][y] == False : + dfs(x,y) + noRG += 1 + +#출력 +print(normal, noRG) + + + + + + From 0d497b3c794a2d4bbcbd13948057b545b734eefe Mon Sep 17 00:00:00 2001 From: SeongJoonhee Date: Wed, 24 May 2023 13:52:01 +0900 Subject: [PATCH 02/10] =?UTF-8?q?#26=20:=2015723=5Fn=EB=8B=A8=20=EB=85=BC?= =?UTF-8?q?=EB=B2=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n\353\213\250 \353\205\274\353\262\225.py" | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" new file mode 100644 index 0000000..15e2a4f --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" @@ -0,0 +1,50 @@ +#2023-05-18-Week6-과제 +#15723_n단 논법 + +''' +n개의 전제가 있을 때 m개의 결론을 도출 + +입력 : +정수 n(2 ≤ n ≤ 26) +둘째 줄부터 n개의 줄에 걸쳐 각 줄에 전제가 하나씩 +a is b의 형식 +a는 b이면서 c일 수 없으나, a와 b가 동시에 c일 수는 있다. + +출력 : +m개의 줄에 걸쳐 각 줄에 결론이 참인지 거짓인지 +''' + + +#런타임 에러 발생 + +import sys +input = sys.stdin.readline() + +N = int(input()) +graph = [[0] * 26 for i in range(26)] + + +#입력한 알파벳 순서를 어떻게 정해야할까............. +order = "abcdefghijklmnopqrstuvwxyz" #알파벳 문자열의 인덱스로..? + + +for i in range(N) : + a, b = map(order.index, input().strip().split(" is ")) + graph[a][b] = 1 + +for i in range(N) : + for j in range(N) : + for k in range(N) : + if graph[j][k] < graph[j][i] + graph[i][k] : + graph[j][k] = graph[j][k] + else : + graph[j][k] = graph[j][i] + graph[i][k] + +M = int(input()) + +for i in range(M) : + a, b = map(order.index, input().strip().split(" is ")) + if graph[a][b] != 0 : + print('T') + else : + print('F') \ No newline at end of file From d578f039076799dfd6cd470723512aec94fc5558 Mon Sep 17 00:00:00 2001 From: SeongJoonhee Date: Wed, 31 May 2023 02:46:01 +0900 Subject: [PATCH 03/10] =?UTF-8?q?#31=20:=201931=5F=ED=9A=8C=EC=9D=98?= =?UTF-8?q?=EC=8B=A4=20=EB=B0=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\354\213\244 \353\260\260\354\240\225.py" | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" new file mode 100644 index 0000000..ae3fe4c --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" @@ -0,0 +1,61 @@ +#2023-05-25-Week7-과제 +#1931_회의실 배정 + +''' +한 개의 회의실을 사용하려는 N개의 회의에 대한 사용표 +시작시간, 종료시간 고정 +시간이 겹치지 않게 회의실 사용하는 최대 회의 개수 + +* 중간 중단 x +* 종료 동시에 다음 회의 시작 o +* 회의 시작하자마자 종료 o +* 시작시간 종료시간 0<=자연수<=2^31 -1 + +입력 1 : 회의 개수 1<=N<=100000 +입력 2 : 회의 정보 -> 시작 공백 종료 + +출력 : 회의 최대 개수 +''' + +''' +1. 시작시간이 빠른 순서 -> 시작시간이 같은 경우 = 종료시간이 빠른 순서 + (2,3) (2,7) :: (2,3) -> (2,7) +2. 종료시간이 빠른 순서 -> 종료시간이 같은 경우 = 시작시간이 빠른 순서 + (7,7) (2,7) :: (2,7) -> (7,7) + +(2,7) (3,5) (6,7) 입력시 +by 1번 :: (2,7) 회의 1개 +by 2번 :: (3,5) (6,7) 회의 2개 + +--> 종료 시간이 빠른 순서, + 같은 경우에는 시작 시간이 빠른 순서 +''' + + +### 런타임 에러 + +import sys +N = int(sys.stdin.readline) + +time = [] +# 시간 저장하는 리스트 +# -> 처음부터 공간을 할당 받고 시작? 입력 받은 만큼 append? + +cnt = 0 # 출력할 회의 개수 + +for _ in range(N): + start, end = map(int, sys.stdin.readline().split()) + time.append([start, end]) + +time = sorted(time, key = lambda time: time[0]) # 시작 시간 sort +time = sorted(time, key = lambda time: time[1]) # 종료 시간 sort + +final = 0 # 마지막 회의 시간 + +for i, j in time: + if i >= final: # 시작 >= 마지막 회의 + cnt += 1 + final = j # 갱신 + +print(cnt) + From 22356692af60badcbc3fbf439aad6e2e5a37cf05 Mon Sep 17 00:00:00 2001 From: SeongJoonhee Date: Wed, 31 May 2023 02:46:23 +0900 Subject: [PATCH 04/10] =?UTF-8?q?#31=20:=201654=5F=EB=9E=9C=EC=84=A0=20?= =?UTF-8?q?=EC=9E=90=EB=A5=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \354\236\220\353\245\264\352\270\260.py" | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/1654_\353\236\234\354\204\240 \354\236\220\353\245\264\352\270\260.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/1654_\353\236\234\354\204\240 \354\236\220\353\245\264\352\270\260.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/1654_\353\236\234\354\204\240 \354\236\220\353\245\264\352\270\260.py" new file mode 100644 index 0000000..e9211ce --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/1654_\353\236\234\354\204\240 \354\236\220\353\245\264\352\270\260.py" @@ -0,0 +1,49 @@ +#2023-05-25-Week7-과제 +#1654_랜선 자르기 + +''' +가지고 있는 K개의 랜선을 잘라서 +N개의 같은 길이 랜선으로 만들기 +-> K=300일 때 N의 길이가 140이면 N=2, 20은 버려짐 + +기존 K개의 랜선으로 N개를 만들 수는 없음 +자를 때는 정수 단위로만 자름 + +N개보다 많이 만드는 것도 N개를 만드는 것에 포함 + + +입력 1 : 이미 가지고 있는 K개, 필요한 랜선 N개 +(1<=K<=10000 1<=N<=1000000 K<=N) +입력 2 : 이미 가지고 있는 K개의 랜선 각 길이 + +랜선의 길이는 자연수<=2^31 -1 + +출력 : N개를 만들 수 있는 랜선의 최대 길이 +''' + + +import sys +K, N = map(int, sys.stdin.readline().split()) + +array = [] + +for i in range(K): + array.append(int(sys.stdin.readline())) + +start = 1 # 최소 1 +end = max(array) # 최대 + +while (start <= end): # 이분탐색 + # --> start와 end가 동일하면 탈출 = 최대 랜선 길이 발견 + mid = (start + end) // 2 # 중간 지점 값 + cnt = 0 # 랜선 개수 0 + for i in range(K) : + cnt += array[i] // mid # 랜선을 중간 값으로 나누어 개수 파악 + if cnt >= N : # 랜선 개수가 목표 이상 = 중간 기준으로 오른쪽 탐색 + start = mid + 1 + else : # 랜선 개수가 목표 미만 = 중간 기준으로 왼쪽 탐색 + end = mid - 1 + +print(end) + + From 96bb2392391b9cf4b341ab7ba297954755c0042a Mon Sep 17 00:00:00 2001 From: SeongJoonhee Date: Thu, 1 Jun 2023 12:45:48 +0900 Subject: [PATCH 05/10] =?UTF-8?q?#31=20:=201931=5F=ED=9A=8C=EC=9D=98?= =?UTF-8?q?=EC=8B=A4=20=EB=B0=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" index ae3fe4c..0e3e684 100644 --- "a/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" @@ -32,7 +32,7 @@ ''' -### 런타임 에러 +### 런타임 에러(23-05-30) -> 시간 정렬 순서 변경함 (23-06-01) import sys N = int(sys.stdin.readline) @@ -47,8 +47,8 @@ start, end = map(int, sys.stdin.readline().split()) time.append([start, end]) -time = sorted(time, key = lambda time: time[0]) # 시작 시간 sort time = sorted(time, key = lambda time: time[1]) # 종료 시간 sort +time = sorted(time, key = lambda time: time[0]) # 시작 시간 sort final = 0 # 마지막 회의 시간 From 983ad92d735aa82c9c110a409427653067bb00d2 Mon Sep 17 00:00:00 2001 From: jooon <98799034+SeongJoonhee@users.noreply.github.com> Date: Thu, 15 Jun 2023 11:35:35 +0900 Subject: [PATCH 06/10] =?UTF-8?q?#34=20:=202839=5F=EC=84=A4=ED=83=95=20?= =?UTF-8?q?=EB=B0=B0=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\244\355\203\225 \353\260\260\353\213\254.py" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/2839_\354\204\244\355\203\225 \353\260\260\353\213\254.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/2839_\354\204\244\355\203\225 \353\260\260\353\213\254.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/2839_\354\204\244\355\203\225 \353\260\260\353\213\254.py" new file mode 100644 index 0000000..f916430 --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/2839_\354\204\244\355\203\225 \353\260\260\353\213\254.py" @@ -0,0 +1,16 @@ +# 2839_설탕 배달 +# -> 정답 + +N = int(input()) +count = 0 + +while N >= 0: + if N % 5 == 0 : # 전체 무게의 합을 5로 나누었을 때 나누어 떨어지면 + count += N // 5 # 그 몫 만큼 봉지 추가 + print (count) # 총 봉지 수 출력 + break + N -= 3 # 전체 무게의 합에서 3 빼기 + count += 1 # 3kg 봉지 한 개 추가 + + if N < 0 : # 봉지를 만들 수 없는 음수 + print(-1) # -1 출력 \ No newline at end of file From 59426724322832b12cba0a6276cf20ba19e32f72 Mon Sep 17 00:00:00 2001 From: jooon <98799034+SeongJoonhee@users.noreply.github.com> Date: Thu, 15 Jun 2023 11:35:58 +0900 Subject: [PATCH 07/10] =?UTF-8?q?#34=20:=2015651=5FN=EA=B3=BC=20M(3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../15651_N\352\263\274 M(3).py" | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/15651_N\352\263\274 M(3).py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/15651_N\352\263\274 M(3).py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/15651_N\352\263\274 M(3).py" new file mode 100644 index 0000000..0fb7af3 --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/15651_N\352\263\274 M(3).py" @@ -0,0 +1,17 @@ +#15651_N과 M(3) +# -> 런타임에러 발생 +N, M = map((int, input()).split()) + +list = [] + +def func() : + if len(list) < M : + for i in range(1, N+1) : + list.append(i) + func() + list.pop() + + else : + print(*list) + +func() \ No newline at end of file From f63d9639ca695623c167f86cf6785e0a61249c72 Mon Sep 17 00:00:00 2001 From: jooon <98799034+SeongJoonhee@users.noreply.github.com> Date: Thu, 15 Jun 2023 12:50:05 +0900 Subject: [PATCH 08/10] =?UTF-8?q?#26=20:=2010026=5F=EC=A0=81=EB=A1=9D?= =?UTF-8?q?=EC=83=89=EC=95=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._\354\240\201\353\241\235\354\203\211\354\225\275.py" | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" index 91089b7..41577ac 100644 --- "a/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" @@ -20,7 +20,8 @@ import string sys.setrecursionlimit(100000) #재귀 -input=sys.stdin.readline() +# input=sys.stdin.readline() -> 한 줄 단위 입력 +input=sys.stdin.readline N = int(input()) matrix = [list(input().rstrip()) for i in range(N)] @@ -39,9 +40,7 @@ def dfs(x,y) : for i in range(4) : #상하좌우 new_x = x + move_x[i] new_y = y + move_y[i] - if {(0 <= new_x <= N - 1) - and (0 <= new_y <= N - 1) - and (visited[new_x][new_y] == False)}: + if (0 <= new_x <= N - 1) and (0 <= new_y <= N - 1) and (visited[new_x][new_y] == False): if color == matrix[new_x][new_y] : dfs(new_x,new_y) @@ -59,7 +58,7 @@ def dfs(x,y) : for x in range(N) : #적록색약 기준으로 색 변경 for y in range(N) : if matrix[x][y] == 'R' or matrix[x][y] == 'G' : - matrix[x][y] == 'g' + matrix[x][y] = 'g' visited = [[0]*N for i in range(N)] #방문횟수 초기화 for x in range(N) : From c96c3666d67871b2f13d3d16618d695d866ff27e Mon Sep 17 00:00:00 2001 From: jooon <98799034+SeongJoonhee@users.noreply.github.com> Date: Thu, 15 Jun 2023 12:52:24 +0900 Subject: [PATCH 09/10] =?UTF-8?q?#26=20:=2015723=5Fn=EB=8B=A8=20=EB=85=BC?= =?UTF-8?q?=EB=B2=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../15723_n\353\213\250 \353\205\274\353\262\225.py" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" index 15e2a4f..1057d42 100644 --- "a/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/15723_n\353\213\250 \353\205\274\353\262\225.py" @@ -18,7 +18,7 @@ #런타임 에러 발생 import sys -input = sys.stdin.readline() +input = sys.stdin.readline N = int(input()) graph = [[0] * 26 for i in range(26)] @@ -32,9 +32,9 @@ a, b = map(order.index, input().strip().split(" is ")) graph[a][b] = 1 -for i in range(N) : - for j in range(N) : - for k in range(N) : +for i in range(26) : + for j in range(26) : + for k in range(26) : if graph[j][k] < graph[j][i] + graph[i][k] : graph[j][k] = graph[j][k] else : From ce5bc4a12a0f7ff7ce6adb2b4cd96d4454c31371 Mon Sep 17 00:00:00 2001 From: jooon <98799034+SeongJoonhee@users.noreply.github.com> Date: Thu, 15 Jun 2023 12:54:01 +0900 Subject: [PATCH 10/10] =?UTF-8?q?#31=20:=201931=5F=ED=9A=8C=EC=9D=98?= =?UTF-8?q?=EC=8B=A4=20=EB=B0=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" index 0e3e684..fa0b932 100644 --- "a/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" @@ -35,7 +35,7 @@ ### 런타임 에러(23-05-30) -> 시간 정렬 순서 변경함 (23-06-01) import sys -N = int(sys.stdin.readline) +N = int(sys.stdin.readline()) time = [] # 시간 저장하는 리스트 @@ -47,8 +47,8 @@ start, end = map(int, sys.stdin.readline().split()) time.append([start, end]) -time = sorted(time, key = lambda time: time[1]) # 종료 시간 sort time = sorted(time, key = lambda time: time[0]) # 시작 시간 sort +time = sorted(time, key = lambda time: time[1]) # 종료 시간 sort final = 0 # 마지막 회의 시간