From b64116ca2976e20c6204de180f275f448c5bf6e0 Mon Sep 17 00:00:00 2001 From: Seong Joon Hee Date: Wed, 3 May 2023 02:43:59 +0900 Subject: [PATCH 1/5] =?UTF-8?q?#14=20:=2011650=5F=EC=A2=8C=ED=91=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...25\353\240\254\355\225\230\352\270\260.py" | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" new file mode 100644 index 0000000..4bf98d4 --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" @@ -0,0 +1,31 @@ +#2023-04-27-Week3-과제 +#11650_좌표 정렬하기 + +''' +문제 +2차원 평면 위의 점 N개가 주어진다. +좌표를 x좌표가 증가하는 순으로, +x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 +출력하는 프로그램을 작성하시오. + +입력 +첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. +둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. +(-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, +위치가 같은 두 점은 없다. + +출력 +첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. +''' + +N = int(input()) +array = [] + +for i in range(N): + a,b = map(int,input().split()) + array.append((a,b)) + +array.sort() + +for j in range(N): + print(array[j][0],array[j][1]) #a b 출력 \ No newline at end of file From ceb7c2452f390063ef19c14541d3bd8c1c34340d Mon Sep 17 00:00:00 2001 From: Seong Joon Hee Date: Thu, 4 May 2023 02:36:52 +0900 Subject: [PATCH 2/5] =?UTF-8?q?#14=20:=201431=5F=EC=8B=9C=EB=A6=AC?= =?UTF-8?q?=EC=96=BC=20=EB=B2=88=ED=98=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\226\274 \353\262\210\355\230\270.py" | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" new file mode 100644 index 0000000..4ecb6da --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" @@ -0,0 +1,55 @@ +#2023-04-27-Week3-과제 +#1431_시리얼 번호 + +''' +문제 +다솜이는 기타를 많이 가지고 있다. +그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. +다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서 +기타를 시리얼 번호 순서대로 정렬하고자 한다. + +모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다. +시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. + +A와 B의 길이가 다르면, 짧은 것이 먼저 온다. + +만약 서로 길이가 같다면, +A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 +작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) + +만약 1,2번 둘 조건으로도 비교할 수 없으면, +사전순으로 비교한다. 숫자가 알파벳보다 사전순으로 작다. +시리얼이 주어졌을 때, 정렬해서 출력하는 프로그램을 작성하시오. + +입력 +첫째 줄에 기타의 개수 N이 주어진다. +N은 50보다 작거나 같다. +둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. +시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어져 있다. +시리얼 번호는 중복되지 않는다. + +출력 +첫째 줄부터 차례대로 N개의 줄에 한줄에 하나씩 +시리얼 번호를 정렬한 결과를 출력한다. +''' + +#익명 함수 호출을 위한 lambda / 정렬을 위한 sort 사용 가능 + +N = int(input()) + +a = [] + +for i in range(N) : + a.append(input()) + +def sum (x) : + sum = 0 + for i in x : + if (x>='0') and (x<='9') : + sum += int(x) + return sum + +a = sorted(list, key= lambda x: (len(x), sum(x), x)) + +for i in a : + print(i) \ No newline at end of file From 722b824d6376fd4ffde0f5c32bbee1c0a3cfb693 Mon Sep 17 00:00:00 2001 From: Seong Joon Hee Date: Thu, 4 May 2023 09:54:49 +0900 Subject: [PATCH 3/5] =?UTF-8?q?#14=20:=201431=5F=EC=8B=9C=EB=A6=AC?= =?UTF-8?q?=EC=96=BC=20=EB=B2=88=ED=98=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...34\353\246\254\354\226\274 \353\262\210\355\230\270.py" | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" index 4ecb6da..90313b7 100644 --- "a/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" @@ -35,12 +35,15 @@ #익명 함수 호출을 위한 lambda / 정렬을 위한 sort 사용 가능 -N = int(input()) +import sys + +#N = int(input()) +N = int((sys.stdin.readline())) a = [] for i in range(N) : - a.append(input()) + a.append(sys.stdin.readline()) def sum (x) : sum = 0 From 210580b0a1329619f851fbb4eb18ddc8abc32244 Mon Sep 17 00:00:00 2001 From: Seong Joon Hee Date: Wed, 10 May 2023 13:13:21 +0900 Subject: [PATCH 4/5] =?UTF-8?q?#17=20:=202579=5F=EA=B3=84=EB=8B=A8=20?= =?UTF-8?q?=EC=98=A4=EB=A5=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \354\230\244\353\245\264\352\270\260.py" | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 "\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" new file mode 100644 index 0000000..2a0bf00 --- /dev/null +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" @@ -0,0 +1,69 @@ + +#2023-05-04-Week3-과제 +#2579_계단 오르기 + + +import sys +input = sys.stdin.readline + +n = int(input()) #계단 개수 +score = [0 for i in range(301)] #계단 점수 리스트 -> 계단의 개수 300이하의 자연수 +dynamic = [0 for i in range(301)] #동적 계획법 리스트 -> 계단의 개수 300이하의 자연수 + +for i in range(n) : + score[i] = int(input()) #계단 개수만큼 점수 입력 + +''' +마지막 도착 계단은 반드시 밟아야 함 +-> 계단 개수 입력 값이 a일 때 + 마지막 도착 계단인 a번 계단을 x번째 차례에 밟은 계단이라고 하면 + x-1번째 차례에는 a-1번 계단이나 a-2번 계단을 밟았을 것 +-> a-1번 계단을 밟았다면 a-2번째 계단은 밟을 수 없음 + +해당 인덱스번째 계단까지의 최댓값을 +동적 계획법 리스트에 저장 + +i번 계단까지 최댓값 += i-2번 계단까지 점수를 고려한 최댓값 + i번 계단의 점수 , + i-3번 계단까지 점수를 고려한 최댓값 + i-1번 계단의 점수 + 중 더 큰 값 (max로 비교) +''' + +dynamic[0] = score[0] +dynamic[1] = score[0] + score[1] +dynamic[2] = max (score[1]+score[2], score[0]+score[2]) + +for i in range(3,n): + dynamic[i] = max(dynamic[i-3]+score[i-1]+score[i], dynamic[i-2]+score[i]) +print(dynamic[n-1]) + + +########################################################################################### +#미리 리스트의 공간을 모두 할당 받는(?)건 낭비인가? 싶어서 다시 작성해봤지만 런타임에러 뜸 + +n = int(input()) #계단 개수 +score = [] #계단 점수 리스트 -> 계단 개수만큼만 할당 +for x in range(n) : + score.append(int(input())) +dynamic = [] #동적 계획법 빈 리스트 + +if n == 1: + dynamic.append(score[0]) + print(dynamic[0]) +elif n == 2 : + dynamic.append(max(score[0]+score[1], score[1])) + print(sum(score)) +else : # n >= 3 + ''' + dynamic[0] = score[0] + dynamic[1] = score[0] + soore[1] + for i in range(2,n): + dynamic[i] = max(dynamic[i-3]+score[i-1]+score[i], dynamic[i-2]+score[i]) + print(score[-1]) + + ''' + dynamic.append(max(dynamic[i-2]+score[i] , dynamic[i-3]+score[i]+score[i - 1])) + +print(dynamic[-1]) #마지막으로 저장한 값 출력 -> d[n-1] == d[-1] == d.pop() + + From 714e95a8d140e9613c8bcc3896188429a13952ad Mon Sep 17 00:00:00 2001 From: Seong Joon Hee Date: Wed, 10 May 2023 13:22:41 +0900 Subject: [PATCH 5/5] =?UTF-8?q?#17=20:=202579=5F=EA=B3=84=EB=8B=A8=20?= =?UTF-8?q?=EC=98=A4=EB=A5=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...63\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" "b/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" index 2a0bf00..301b097 100644 --- "a/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" +++ "b/\354\235\264\355\213\260\354\244\200\355\235\254/2579_\352\263\204\353\213\250 \354\230\244\353\245\264\352\270\260.py" @@ -41,6 +41,9 @@ ########################################################################################### #미리 리스트의 공간을 모두 할당 받는(?)건 낭비인가? 싶어서 다시 작성해봤지만 런타임에러 뜸 +import sys +input = sys.stdin.readline #이렇게 해도 런타임에러 발생 + n = int(input()) #계단 개수 score = [] #계단 점수 리스트 -> 계단 개수만큼만 할당 for x in range(n) :