From 29ea48926977374fb6fabf31dea1f53999a6660d Mon Sep 17 00:00:00 2001 From: Jiyun Kim Date: Wed, 24 May 2023 22:01:58 +0900 Subject: [PATCH 1/5] =?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" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\247\200\354\234\244/15723_n\353\213\250 \353\205\274\353\262\225.py" diff --git "a/\354\235\264\355\213\260\354\247\200\354\234\244/15723_n\353\213\250 \353\205\274\353\262\225.py" "b/\354\235\264\355\213\260\354\247\200\354\234\244/15723_n\353\213\250 \353\205\274\353\262\225.py" new file mode 100644 index 0000000..616e873 --- /dev/null +++ "b/\354\235\264\355\213\260\354\247\200\354\234\244/15723_n\353\213\250 \353\205\274\353\262\225.py" @@ -0,0 +1,29 @@ +import sys + +input = sys.stdin.readline +INF = int(1e9) # 무한을 의미하는 값으로 10억 + +N = int(input()) + +alphabet = "abcdefghijklmnopqrstuvwxyz" + +n = len(alphabet) #26 + +graph = [[INF] * n for _ in range(n)] # INF로 초기화 + +for _ in range(N): + a, b = map(alphabet.index, input().rstrip().split(" is ")) + graph[a][b] = 1 + +for k in range(n): + for a in range(n): + for b in range(n): + graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) + +M = int(input()) +for _ in range(M): + a, b = map(alphabet.index, input().rstrip().split(" is ")) + if graph[a][b] == INF: + print("F") + else: + print("T") From 24123db7288cb28b39838a523d79638408a7b718 Mon Sep 17 00:00:00 2001 From: Jiyun Kim Date: Wed, 24 May 2023 22:02:52 +0900 Subject: [PATCH 2/5] =?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" | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" diff --git "a/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" "b/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" new file mode 100644 index 0000000..786a158 --- /dev/null +++ "b/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" @@ -0,0 +1,71 @@ +#10026_적록색약 +#적록색약이 아닌 사람 : 유기농 배추랑 똑같음 +#적록색약인 사람 : +import sys +sys.setrecursionlimit(10000) + +read=sys.stdin.readline +#MAX= 100+10 +#print(MAX) +n = int(read()) + +#인덱스0부터 3까지 차례대로 합치면 오른쪽, 왼쪽, 위, 아래 +dirX = [1, -1, 0, 0] +dirY = [0, 0, 1, -1] + +graph +graph = [list(input().rstrip()) for _ in range(n+1)] + +#graph = [[]] # 인덱스 0은 빈 리스트로 초기화 + +# for _ in range(n): +# line = list(input().rstrip()) +# graph.append(line) + +# graph = [[]] +# for i in range(n): +# graph.append(list(sys.stdin.readline().rstrip())) + +#visited +visited=[[False]*(n+1) for _ in range(n+1)] + +count1 = 0 +count2 = 0 + + +def dfs(x,y): + global graph, visited + visited[x][y] = True + + for i in range(4): + newX = x + dirX[i] + newY = y + dirY[i] + if not visited[newX][newY]: + if graph[newX][newY] == graph[x][y]:#위 조건 만족하면서 탐색중인 색상과 같은 색이면 + dfs(newX, newY) #dfs로 탐색 + +# 적녹색약이 아닌 사람 +for i in range(1, n+1): + for j in range(1, n+1): + if graph[i][j] and not visited[i][j]: + dfs(i, j) + count1 += 1 + +# 적녹색약인 사람 +# 초록색->빨간색으로 변경 +for i in range(1, n+1): + for j in range(1, n+1): + if graph[i][j] == 'G': + graph[i][j] = 'R' +# 방문정보 초기화 +visited = [[False]*(n+1) for _ in range(n+1)] +for i in range(1, n+1): + for j in range(1, n+1): + if graph[i][j] and not visited[i][j]: + dfs(i, j) + count2 += 1 + +print(count1, count2) + + + From 069ccd0601709a3f8432d4f152a46312cced8dd9 Mon Sep 17 00:00:00 2001 From: Jiyun Kim Date: Wed, 31 May 2023 19:12:31 +0900 Subject: [PATCH 3/5] =?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" | 41 ++++++++----------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git "a/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" "b/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" index 786a158..30d320b 100644 --- "a/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" +++ "b/\354\235\264\355\213\260\354\247\200\354\234\244/10026_\354\240\201\353\241\235\354\203\211\354\225\275.py" @@ -13,21 +13,11 @@ dirX = [1, -1, 0, 0] dirY = [0, 0, 1, -1] -graph -graph = [list(input().rstrip()) for _ in range(n+1)] - -#graph = [[]] # 인덱스 0은 빈 리스트로 초기화 - -# for _ in range(n): -# line = list(input().rstrip()) -# graph.append(line) - -# graph = [[]] -# for i in range(n): -# graph.append(list(sys.stdin.readline().rstrip())) +#graph +graph = [list(input().rstrip()) for _ in range(n)] #visited -visited=[[False]*(n+1) for _ in range(n+1)] +visited=[[False]*(n) for _ in range(n)] count1 = 0 count2 = 0 @@ -40,27 +30,28 @@ def dfs(x,y): for i in range(4): newX = x + dirX[i] newY = y + dirY[i] - if not visited[newX][newY]: - if graph[newX][newY] == graph[x][y]:#위 조건 만족하면서 탐색중인 색상과 같은 색이면 - dfs(newX, newY) #dfs로 탐색 + if (n > newX >= 0) and (n > newY >= 0): + if not visited[newX][newY]: + if graph[newX][newY] == graph[x][y]:#위 조건 만족하면서 탐색중인 색상과 같은 색이면 + dfs(newX, newY) #dfs로 탐색 # 적녹색약이 아닌 사람 -for i in range(1, n+1): - for j in range(1, n+1): +for i in range(0, n): + for j in range(0, n): if graph[i][j] and not visited[i][j]: dfs(i, j) count1 += 1 # 적녹색약인 사람 # 초록색->빨간색으로 변경 -for i in range(1, n+1): - for j in range(1, n+1): - if graph[i][j] == 'G': - graph[i][j] = 'R' +for i in range(0, n): + for j in range(0, n): + if graph[i][j] == 'R': + graph[i][j] = 'G' # 방문정보 초기화 -visited = [[False]*(n+1) for _ in range(n+1)] -for i in range(1, n+1): - for j in range(1, n+1): +visited = [[False]*(n) for _ in range(n)] +for i in range(0, n): + for j in range(0, n): if graph[i][j] and not visited[i][j]: dfs(i, j) count2 += 1 From 85842f752a7003baa9f085ca780a6d73ab4d0ba8 Mon Sep 17 00:00:00 2001 From: Jiyun Kim Date: Wed, 31 May 2023 19:13:36 +0900 Subject: [PATCH 4/5] =?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" | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\247\200\354\234\244/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\247\200\354\234\244/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\247\200\354\234\244/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" new file mode 100644 index 0000000..e137614 --- /dev/null +++ "b/\354\235\264\355\213\260\354\247\200\354\234\244/1931_\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.py" @@ -0,0 +1,32 @@ +# 1931_회의실 배정 + +import sys + +# 회의의 수 +n = int(sys.stdin.readline()) + +# 회의 시간 +meeting_times = [] + +# 회의의 시작 시간과 끝나는 시간 +for _ in range(n): + start, end = map(int, sys.stdin.readline().split()) + meeting_times.append((start, end)) + +# 회의 시간을 종료 시간 기준 및 시작 시간 기준으로 정렬 +meeting_times = sorted(meeting_times, key = lambda x : (x[1], x[0])) + +# 최대 회의 개수 +count = 1 +# 이전 회의 종료 시간 +end_time = meeting_times[0][1] + +for i in range(1, n): + # 다음 회의 시작 시간이 이전 회의 종료 시간보다 크거나 같다면 + if (meeting_times[i][0] >= end_time): + # 이전 회의 종료 시간 업데이트 + end_time = meeting_times[i][1] + # 최대 회의 개수 증가 + count += 1 + +print(count) \ No newline at end of file From e2e289e72b8240f1b8f790e72a8b6bd008e18472 Mon Sep 17 00:00:00 2001 From: Jiyun Kim Date: Wed, 31 May 2023 19:13:54 +0900 Subject: [PATCH 5/5] =?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" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\247\200\354\234\244/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\247\200\354\234\244/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\247\200\354\234\244/1654_\353\236\234\354\204\240 \354\236\220\353\245\264\352\270\260.py" new file mode 100644 index 0000000..a1e941b --- /dev/null +++ "b/\354\235\264\355\213\260\354\247\200\354\234\244/1654_\353\236\234\354\204\240 \354\236\220\353\245\264\352\270\260.py" @@ -0,0 +1,24 @@ +import sys + +input = sys.stdin.readline + +# k : 이미 가지고 있는 랜선의 개수, n : 필요한 랜선의 개수 +k, n = map(int, input().split()) +lan = [int(input()) for _ in range(k)] + +answer = 0 # 랜선의 최대 길이 + +start, end = 1, max(lan) +while start <= end: + mid = (start + end) // 2 + temp_sum = 0 + for i in lan: # mid 길이만큼 랜선 케이블들을 조각냄 + temp_sum += i // mid + + if temp_sum >= n: # 랜선의 개수가 n이상이면 + start = mid + 1 + answer = mid + else: # 랜선의 개수가 n미만이면 + end = mid - 1 + +print(answer) \ No newline at end of file