Python/백준(33)
-
[백준] 1978 소수 찾기 Python
https://www.acmicpc.net/problem/1978 📝 문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 🔎 풀이N개의 수를 입력받아 리스트에 저장한 뒤, 하나씩 꺼내 소수인지 확인한다.소수인지 확인할 때는 2부터 입력받은 값까지 입력받은 숫자와 나누는데, 이때 나머지가 0이면 나눗셈 연산을 탈출한다.나누는 수와 입력받은 수가 일치하면 그 수는 소수로 판단한다. 💻 코드n = int(input())numbers = list(map(int, input().split()))count = 0for i in numbers: j = 0 for jj in range(2, i + 1): j = jj if i % jj == ..
2024.06.21 -
[백준] 9506 약수들의 합 Python
https://www.acmicpc.net/problem/9506 📝 문제어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다.n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. 🔎 풀이먼저 입력 받은 수의 모든 약수를 구한 뒤 리스트에 저장해준다.이후 약수의 합이 입력받은 수와 일치할 때, 리스트에 저장된 수를 하나씩 꺼내 출력한다.일치하지 않는 경우 완전수가 아니라는 출력문을 출력한다. 💻 코드while True: n = int(input()) if n == -1: break i = 1 sum = 0 nums = [] while i
2024.06.21 -
[백준] 2501 약수 구하기 Python
https://www.acmicpc.net/problem/2501 📝 문제어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면6 ÷ 1 = 6 … 06 ÷ 2 = 3 … 06 ÷ 3 = 2 … 06 ÷ 4 = 1 … 26 ÷ 5 = 1 … 16 ÷ 6 = 1 … 0그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다.두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. 🔎 풀이약수의 개수를 저장 할 count라는 변수와 약수의 개수가 K보다 작은지를 비교하기 위한 변수 check을 생성한다.1부터 N까지 나눗셈 연산을 진행한다.연산을 수행하는 중 나머지가 0이면 count의 값을..
2024.06.19 -
[백준] 5086 배수와 약수 Python
https://www.acmicpc.net/problem/5086 📝 문제4 × 3 = 12이다.이 식을 통해 다음과 같은 사실을 알 수 있다.3은 12의 약수이고, 12는 3의 배수이다.4도 12의 약수이고, 12는 4의 배수이다.두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.1. 첫 번째 숫자가 두 번째 숫자의 약수이다.2. 첫 번째 숫자가 두 번째 숫자의 배수이다.3. 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다. 🔎 풀이입력 받은 수를 각각 a, b라고 할 때,a % b == 0인 경우(a와 b의 나눗셈 연산 결과가 나누어 떨어지는 경우) 1의 조건을 만족한다.b % a == 0인 경우(b와 a의 나눗셈 연산 결과가 나누어 떨어지는 경우) 2..
2024.06.19 -
[백준] 2869 달팽이는 올라가고 싶다 Python
https://www.acmicpc.net/problem/2869 📝 문제땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 🔎 풀이입력받는 세 개의 숫자를 각각 A, B, V라고 했을 때, 세 숫자를 이리저리 조합하면서 수식을 구했다.(V - A) / (A - B)의 ceiling + 1 이 수식. 💻 코드import mathA, B, V = map(int, input().split())print(math.ceil((V - A) / (A - B))..
2024.06.19 -
[백준] 1193 분수찾기 Python
https://www.acmicpc.net/problem/1193 📝 문제무한히 큰 배열에 다음과 같이 분수들이 적혀있다.이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 🔎 풀이지그재그는 다음과 같이 진행된다.이는 짝수 번째 줄의 출력 식과 홀수 번째 줄의 출력 식이 달라야 함을 의미한다. 4번째 줄을 이용해 수식을 도출해보자. 입력받은 수를 X라고 했을 때, X가 0이 될 때까지 i에 1씩 추가하여 뺄셈을 진행한다. 이후 값들을 요리조리 배치하면서 표에 해당하는 분수를 만드는 수식을 도출해낸다. 짝수 번째 줄에..
2024.06.17