input 44

[백준] 2903번 파이썬 python(중앙 이동 알고리즘)

▷ 문제 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. 외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다. 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 정사각형의 중심에 점을 하나 추가한다. 초기 상태에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이와 같은 과정을 상근이가 만족할 때 까지 계속한다. 아래 그림은 과정을 총 2번 거쳤을 때까지의 모습이다. 상근이는 어떤 점은 한 개 보다 많은 정사각형에 ..

[백준] 2720번 파이썬 python(세탁소 사장 동혁)

▷ 문제 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님..

[백준] 11005번 파이썬 python(진법 변환 2)

▷ 문제 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 ▷ 전체 코드 N, B = map(int, input().split()) a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" b = "" while N: b += str(a[N%B]) N //= B print(b[::-1]) ▷ 코드 분석 N, B = map(int, input().split()) 변수 N에 10진법의 수를 저장하고, 변수 B에 몇 진법으로 바꿀지 저장한다. map() 함수를 ..

[백준] 2745번 파이썬 python(진법 변환)

▷ 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 ▷ 전체 코드 N, B = input().split() N = N[::-1] B = int(B) a = list("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ") b = 0 for i,n in enumerate(N): b += (B**i)*(a.index(n)) print(b) ▷ 코드 분석 N, B = input().split() N = N[::-1] B = int(B) 변수 N에 변환할 수를 ..

[백준] 2563번 파이썬 python(색종이)

▷ 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. ▷ 전체 코드 n = int(input()) a = [[0]*100 for i in range(100)] for i in range(n): x, y = map(int, input().split()) for i in range(x, x+10): for j in..

[백준] 2566번 파이썬 python(최댓값)

▷ 문제 과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. ▷ 전체 코드 a = [] for i in range(9): a.append(list(map(int, input().split()))) x = 0 r = 0 c = 0 for i in range(9): for j in range(9): if a[i][j] >= x: x = a[i][j] r = i+1 c = j+1 print(x) print(r, c) ▷ 코드 분석 a = [] for i in range(9): a.appe..

[백준] 2941번 파이썬 python(크로아티아 알파벳)

▷ 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. ▷ 전체 코드 x = input() y = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="] for i in y: x = x.replace(i, "a") print(len(x)) ▷ 코드 분석 x = ..

[백준] 10988번 파이썬 python(팰린드롬인지 확인하기)

▷ 문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. ▷ 전체 코드 x = list(input()) y = x[::-1] if x == y: print(1) else: print(0) ▷ 코드 분석 x = list(input()) y = x[::-1] list() 함수를 사용해서 리스트 x에 input() 함수로 입력받은 문자열을 하나하나 분리하여 리스트에 저장한다. 리스트 y에는 [::-1]을 사용해 리스트 x를 뒤집은 값을 저장한다. if x == y: print..

[백준] 5622번 파이썬 python(다이얼)

▷ 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최..

[백준] 1152번 파이썬 python(단어의 개수)

▷ 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. ▷ 전체 코드 A = input() print(len(A.split())) ▷ 코드 분석 A = input() 변수 A에 문자열을 저장한다. input() 함수를 사용해 입력된 요소를 문자열로 변수로 저장한다. print(len(A.split())) 공백을 기준으로 입력한 문자열의 단어의 개수를 출력한다. split() 함수를 사용해 공백을 기준으로 문자열 A를 나눠주고, len() 함수를 사용해 나눠진 개수를 반환한다.