Python
-
[백준] 1193번 (python) *(Need to Review)[백준 Baekjoon]/[Python] 2024. 1. 29. 13:27
문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 코드 num = int(input()) # n번째 분수 line = 1 # 지그재그 모양의 분수들의 규칙따라 정렬해놓은 라인 while..
-
[백준] 2903번 (python)[백준 Baekjoon]/[Python] 2024. 1. 26. 11:26
중앙 이동 알고리즘 문제 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. 외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다. 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 정사각형의 중심에 점을 하나 추가한다. 초기 상태에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이와 같은 과정을 상근이가 만족할 때 까지 계속한다. 아래 그림은 과정을 총 2번 거쳤을 때까지의 모습이다. 초기 상태 - 점 4개 1번 - ..
-
[백준] 2720번 (python)[백준 Baekjoon]/[Python] 2024. 1. 24. 16:54
문제 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님이 ..
-
[백준] 11005번 진법 변환2 (python)[백준 Baekjoon]/[Python] 2024. 1. 23. 19:58
문제 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 입력 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다. 출력 첫째 줄에 10진법 수 N을 B진법으로 출력한다. 아이디어 1. N과 B를 정수형으로 받는다. 2. N을 B진법으로 변환한 수를 받는 빈 문자열을 생성한다 3. [0-Z]까지의 수가 들어있는 문자열을 생성한다 4. N을 B로 나누는데, N이 0이 될 때 까지 초기화해준다 5. 초기화 될 때마다의 나머지를 빈 문자열에..
-
Python SummarySummary/[Python] Summary 2024. 1. 23. 14:15
파이썬의 장점 : 범용성 * 파이썬 동작 과정 1. 소스코드 작성 2. 인터프리터가 소스코드를 한 줄씩 읽고 해석하여 Bytecode로 변환 3. Byte 코드를 Python Virtual Machin (PVM)이 기계어로 변환한다. ByteCode : 특정 플랫폼에서 실행되는 중간 언어로, 기계어보다는 사람이 이해하기 쉽도록 만들어진 언어. Compile : 소스코드로 작성한 프로그래밍 언어를 기계어로 바꾸어주는 기능 파이썬은 소스파일을 인터프리터가 번역하여 기계어로 변환한다. -> C언어는 목적파일을 만드는 절차가 더 있지만 파이썬은 없다. 인터프리터 언어 : 실행 전 컴파일 하지 않고 바로 결과 확인이 가능한 언어 = 대화형 언어 Program : 명령어들의 집합. 명령어들은 순서를 갖고 논리적으로..
-
[백준] 2566번 최댓값 (python)[백준 Baekjoon]/[Python] 2024. 1. 22. 17:39
과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 3 23 85 34 17 74 25 52 65 10 7 39 42 88 52 14 72 63 87 42 18 78 53 45 18 84 53 34 28 64 85 12 16 75 36 55 21 77 45 35 28 75 90 76 1 25 87 65 15 28 11 37 28 74 65 27 75 41 7 89 78 64 39 47 47 70 45 23 65 3 41 44 87 13 82 38 31 12 29 29 80 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. [아이디어..
-
[백준] 2738번 행렬 덧셈 (python)[백준 Baekjoon]/[Python] 2024. 1. 22. 16:57
문제 N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오. 입력 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다. 출력 첫째 줄부터 N개의 줄에 행렬 A와 B를 더한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다. 예제 입력 1 3 3 1 1 1 2 2 2 0 1 0 3 3 3 4 4 4 5 5 100 예제 출력 1 4 4 4 6 6 6 5 6 100 [아이디어] 1. N과 M을 먼저 입력 받는다. 2. 빈리스트 A,B 를 만든다. 3. for i..
-
[백준] 2745번 진법 변환 (python)[백준 Baekjoon]/[Python] 2024. 1. 22. 16:46
[문제] B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 [입력] 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. [ 출력] 첫째 줄에 B진법 수 N을 10진법으로 출력한다. [아이디어] 1. B는 진법을 나타내므로 int형으로 받고, N은 문자가 될 수 있으므로 str형으로 받는다. 2. N의 0번째 인덱스부터 0제곱, 1제곱, 2제곱 늘려나가기 위해 뒤집는다. 3. 0~Z 까지의 문자열을 하나 생..