728x90
반응형

코딩테스트 91

[백준][Python] 1018. 체스판 다시 칠하기

🙆‍♂️문제 🙋‍♂️풀이 약간 끔찍해보이지만 침착하게 문제 요약 : 먼저 체스판의 규격을 입력받습니다.그리고 체스판이 입력되는데 W와 B로 표현됩니다. 이 때 임의의 8x8 체스판을 뽑아 체스판 규칙에 맞지 않는 (다시 색을 칠해야 하는) 부분의 최소의 수를 구해야 합니다. 🚀 입력받기 n,m = map(int,input().split()) chess=[list(input()) for _ in range(n)] 먼저 체스판의 n x m 규격을 입력받습니다. 그리고 체스판의 모양을 입력받는데 2차원 리스트로 입력받습니다. 🚀 8x8 올바른 체스판 startW=[];startB=[] for i in range(8): startW.append([]) startB.append([]) for j in range(..

[백준][Python] 7568. 덩치

🙆‍♂️문제 🙋‍♂️풀이 문제요약 : 덩치 비교 알고리즘을 만드는 것인데, 덩치란 키와 몸무게를 비교했을 때 숫자가 더 높은 사람이 덩치가 큰 사람이 된다. 이 때 비교대상과 비교했을 때 키는 크고 몸무게가 작다면 덩치의 크고 작음을 구분할 수 없기 때문에 그대로 둔다. 사람 수가 입력되고 각각의 몸무게와 키가 입력된다. 이 때 1번 사람보다 덩치가 큰사람의 수를 k명이라고 하면 1번의 덩치 등수는 1+k다 각 사람의 등수를 구해라. 🚀입력받기 n = int(input()) bulk = [list(map(int, input().split())) for _ in range(n)] 먼저 케이스 수를 입력받고 각 케이스에 대한 정보를 입력받는다. 각 케이스에 대한 정보는 2차원 리스트로 입력받는다. win=[..

[백준][Python] 2231. 분해합

🙆‍♂️문제 🙋‍♂️풀이 문제 요약 : 어떤 자연수 M이 있다면 M=245라고 가정했을 때 각 자리수의 합(245+2+4+5=256)을 분해합이라고 한다. 이 때 자연수 M을 분해합 N(256)의 생성자라고 한다. 분해합 N이 주어졌을 때 M이 될 수 있는 가장 작은 수를 찾아라. 🚀입력받기 n = int(input()) int형 값을 하나 입력 받습니다. 🚀 생성자 찾아서 배열에 넣기 decomDiv=[] decomDiv.extend(str(n)) 먼저 입력받은 값이 몇자리 수인지 구하는 배열을 만듭니다. extend를 활용하여 1000이 입력되면 ["1","0","0","0"]이 배열에 입력되어서 4자리 수 임을 알게 됩니다. 자리 수를 체크하는 이유는 생성자를 구하는 최고의 경우의 수가 자리 수마다..

[백준][Python] 2798번. 블랙잭

🙆‍♂️문제 🙋‍♂️풀이 문제요약 : N장의 숫자 카드 중 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력! 입력 값으로는 카드의 개수 N과 제한 값 M이 첫줄에 주어지고 둘째 줄에는 N개의 카드 숫자들이 주어진다. 🚀입력받기 n,m = map(int,input().split()) card = list(map(int, input().split())) n에는 카드 수 m에는 제한 값 그리고 card 배열안에 카드 숫자들을 입력받았습니다. 🚀 제한 값을 넘지않는 값 배열에 넣기 win = [] for i in range(len(card)-2): for j in range(i+1,len(card)-1): for k in range(J+1,len(card)): add = card[i]+card[j..

[코드업][그리디][파이썬] 3120. 리모컨

🙆‍♂️문제 🙋‍♂️풀이 그리디 알고리즘을 사용하기 좋은 문제입니다. 온도를 변경하기 위한 최소 횟수를 구하는 것입니다. #입력 받기 a,b=map(int, input().split()) cnt = 0 #경우의 수 분류 arr1=[1,5] arr2=[2,4,6,9] arr3=[3,7,8] minus=abs(b-a) div = minus//10 mdl = minus%10 cnt += div if mdl in arr1: cnt+=1 elif mdl in arr2: cnt+=2 elif mdl in arr3: cnt+=3 print(cnt) 먼저는 생각할 수 있는 것이 움직여야 하는 온도를 10을 나눴을 때 몫으로 10도 위아래 움직이는 것을 생각할 수 있습니다. 그것이 div에 저장되고 이제 5도 움직이는 ..

[코드업][그리디][파이썬] 2001. 최소대금

🙆‍♂️문제 🙋‍♂️풀이 파이썬에선 그리디 문제를 풀기 쉽습니다.(아마도) 아무튼 이번건 쉽습니다. 파스타 가격과 쥬스 가격을 따로 배열들에 저장해놓고 찾을 것입니다. pasta = [int(input()) for _ in range(3)] juice = [int(input()) for _ in range(2)] mini = min(pasta)+min(juice) print(mini+mini/100*10) min함수를 이용해서 쉽게 최소 값을 찾아서 값을 구했습니다.

[코드업][기초 100제][파이썬] 6098. 성실한 개미

🙆‍♂️문제 🙋‍♂️풀이 먼저 10*10 미로를 입력받습니다. maze=[list(map(int, input().split())) for _ in range(10)] 그리고 조건문을 통해서 어떻게 해야 할지 결정합니다. 최종코드는 이렇습니다. #미로 입력 maze=[list(map(int, input().split())) for _ in range(10)] #출발좌표 설정 x=1;y=1 #최종지에 도착할 때 까지 반복 while 1: #우측이 0인경우 지금 위치 9로 바꾸고 우로 이동 if maze[x][y+1]==0: maze[x][y]=9 y+=1 #우측이 1인 경우 elif maze[x][y+1] == 1: #밑에도 1인경우 지금 위치 9로 바꾸고 종료 if maze[x+1][y] == 1: maz..

[코드업][기초 100제][파이썬] 6096. 바둑알 십자 뒤집기

🙆‍♂️문제 🙋‍♂️풀이 이번에는 바둑판을 입력받습니다. b=[list(map(int, input().split())) for _ in range(19)] 바둑판은 이렇게 2차원 리스트로 입력받았습니다. n=int(input()) arr=[list(map(int, input().split())) for _ in range(n)] 그리고 뒤집을 값들을 입력받고 for i in range(n): x = arr[i][0]-1 y = arr[i][1]-1 for j in range(19): if b[x][j] == 0: b[x][j]=1 else: b[x][j]=0 for j in range(19): if b[j][y]==0: b[j][y]=1 else: b[j][y]=0 그 부분을 뒤집어 주면 됩니다. #바둑..

[코드업][기초 100제][파이썬]6095. 바둑판에 흰 돌 놓기

🙆‍♂️문제 🙋‍♂️풀이 문제를 정리해보면 19*19의 바둑돌 판이 있고 흰돌이 놓인 위치는 1 아닌 위치는 0으로 출력해야한다. 먼저 0으로 도배된 19*19 판을 만들어야 한다. b=[] for i in range(19): b.append([]) for j in range(19): b[i].append(0) for i in range(19): for j in b[i]: print(j, end=" ") print() 이렇게 0으로 채워진 바둑판을 만들었고 이제 해당 칸에만 1로 바꿔주면 됩니다. n=int(input()) arr=[list(map(int, input().split())) for _ in range(n)] for i in range(n): x = arr[i][0]-1 y = arr[i][..

[코드업][기초 100제][파이썬] 비트단위 논리연산와 3항 연산자

🙆‍♂️비트단위 논리연산 비트단위 논리연산자가 있습니다. not은 ~로 and는 &로 or는 | 로 xor은 ^로 시프트는 (오른쪽 시프트)가 있습니다. 시프트에 관한 내용은 이 게시물에 정리했습니다. 🚀not a=int(input()) print(~a)#~a = -a-1,-a = ~a+1 #a=2일 때 -3 출력 이처럼 표현됩니다. 🚀and a,b=map(int,input().split()) print(a&b) 🚀or a,b=map(int,input().split()) print(a|b) 🚀xor a,b=map(int,input().split()) print(a^b) 🚀3항 연산자 a=1;b=2 print(a if(a>b) else b)#b값인 2가 출력됨

728x90
반응형