baekjoon 41

백준 [2750.수 정렬하기] | Python

✏️ 문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net ✏️ 풀이방법 1. 리스트에 값을 받아서 sort()메소드 또는 sorted()함수로 정렬 📌 코드 n = int(input()) list1 = [] for i in range(n): list1.append(int(input())) list1.sort() #메소드를 사용해서 리스트 정렬 for i in range(n): print(list1[i]) n = int(input()) list1 = ..

Python/online judge 2024.01.10

백준 [11653.소인수분해] | Python

✏️ 문제https://www.acmicpc.net/problem/11653 11653번: 소인수분해첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.www.acmicpc.net ✏️ 풀이방법1. 정수n을 소수 중 가장 작은 수 2로 나누는 반복을 수행하는데 2로 나눠떨어지지 않을 때 다음 숫자로 +1을 해서 나눈다. 📌 코드n = int(input())i = 2while True: if n == 1: #n이 1인 경우 아무것도 출력하지 않는다 print("") break if n % i == 0: n = n//i print(i) else: i +=1 📌 결과# 입력72#출력22233# 입력3#출력3# ..

Python/online judge 2024.01.10

백준 [2581.소수] | Python

✏️ 문제 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net ✏️ 풀이방법 1. 특정범위안의 소수를 찾아서 리스트(prime)에 담는다. 2. 리스트(prime)의 총합을 구한다. 3. 소수가 없는 경우에는 -1을 출력해야하기 때문에 리스트(prime)의 길이가 0이면 소수가 없는것을 활용했다. 📌 코드 m = int(input()) n = int(input()) # m이상 n이하의 자연수 nums = [int(i) for i in range (m,n+1)..

Python/online judge 2024.01.10

백준 [1978.소수 찾기] | Python

✏️ 문제https://www.acmicpc.net/problem/1978 1978번: 소수 찾기첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.www.acmicpc.net ✏️ 풀이방법1. 리스트(num)에 소수인지 확인할 수를 입력 2. 1은 소수가 아니기 때문에 pass3. 리스트(prime)를 선언하여 소수인지 판별하는 수의 약수를 추가4. 소수는 1과 자기자신만을 약수로 가지는 수이기 때문에 리스트(prime)의 길이가 2이면 소수 📌 코드n = int(input())num = list(map(int,input().split()))cnt = 0for i in range(n): prime = [] if num..

Python/online judge 2024.01.04

백준 [2903.중앙 이동 알고리즘] | Python

✏️ 문제https://www.acmicpc.net/problem/2903 2903번: 중앙 이동 알고리즘상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다.www.acmicpc.net ✏️ 풀이방법1. 한 변의 점의 개수가 위와 같이 2의 제곱수씩 증가하는 규칙을 발견2. n회 만큼 거쳤을 때 한 변의 점의 개수를 확인3. (점의 개수 * 점의 개수)를해서 한 정사각형의 점의 개수를 출력 📌 코드n = int(input())point = 2for i in range(n): point = point+(2**i)print(point*point) 📌 결과#..

Python/online judge 2023.12.28

백준 [2869.달팽이는 올라가고 싶다] | Python

✏️ 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net ✏️ 풀이방법 1. 나무막대에 도달하는 날을 x라고하면, 총 올라가는 횟수는 x번, 내려오는 횟수는 x-1번이다. 2. Ax - B(x-1) = V를 x에 대한 식으로 정리하면 x = (V-B)/(A-B)이다. 3. x가 정수이면 x일에 나무를 다 올라간것이지만, x가 정수가 아니라면 +1을 한다. 📌 코드 A, B, V = map(int, input().split()) x = (V-B)/(A-B) if x == int(x): print(int..

Python/online judge 2023.12.13

백준 [5597.과제 안 내신 분..?] | Python

✏️ 문제 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net ✏️ 풀이방법 1. 1번부터 30번까지 수가 입력된 리스트(n) 선언 2. 28개의 제출자를 입력받은 리스트(stdno) 선언 3. 리스트(stdno)에 리스트(n)이 없는 숫자를 찾아 출력 📌 코드 n = [i for i in range(1,31)] stdno = [] for _ in range(28): stdno.append(int(input())) for i in ra..

Python/online judge 2023.12.01

백준 [10811.바구니뒤집기] | Python

✏️ 문제 https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net ✏️ 풀이방법 1. 역순으로 만드는 m번의 방법을 리스트(seq)에 담는다. 2. 바구니의 번호 1부터n까지를 리스트(basket)에 담는다. 3. i번째부터 j번째까지의 특정범위만 인덱스를 거꾸로 해서 리스트(basket)를 바꾼다. 4. 3번의 과정을 반복수행한다. 📌 코드 n,m = map(int,input().split()) seq = [] #역순으로 만드는 방법 담는 리..

Python/online judge 2023.11.30

백준 [10810.공 넣기] | Python

✏️ 문제 https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net ✏️ 풀이방법 1. 0으로 초기화된 1차원리스트(basket)를 생성해서 인덱스를 활용하여 일정범위까지 숫자를 변경한다. 2. 숫자를 변경하는 과정을 m번 동안 반복한다. - 리스트는 변형(mutable)가능한 자료형이기 때문에 인덱스를 활용해서 값을 변경할 수 있다. 📌 코드 n ,m = map(int,input().split()) basket = [0 for _ in range(n..

Python/online judge 2023.11.29

백준 [5622.다이얼] | Python

✏️ 문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net ✏️ 풀이방법 1. 다이얼번호에 적혀있는 알파벳에 맞춰 '/'로 구분된 알파벳 문자열을 담은 변수(dials) 선언하기 2. 문자열 함수 split()을 사용해서 '/'로 구분하여 새로운 문자열(dial)에 저장하기 3. 다이얼에 입력받은 알파벳을 '/'로 구분해서 담은 문자열(dial)에서 찾기 4. 찾은 문자열의 위치(인덱스 번호)를 활용하여 다이얼에 입력한 숫자 알아내기 -인덱스는 0부터 시작하지만 다이얼번호는 1부터 시작하는 것에 주의 5. 입력한 숫자합들의 총 ..

Python/online judge 2023.11.29