본문 바로가기

전체 글

(22)
[알고리즘_08] 백준 10872번 팩토리얼 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다. 출력 첫째 줄에 N!을 출력한다 # 방법1 - 런타임 에러 발생하긴 함 def factorial(n): result = 1 if n > 0: result = n * factorial(n-1) return result n = int(input()) print(factorial(n)) # 방법2 n = int(input()) result = 1 if n > 0: for i in range(1, n+1): result *= i print(result)
[알고리즘_07] 백준 1978번 소수 찾기 공부 포인트: 컴퓨팅 사고 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 알고리즘 N = int(input()) A = list(map(int, input().split())) #소수의 개수 result = 0 for i in A: cnt = 0 if i == 1: continue for j in range(2, i+1): if i % j == 0: cnt += 1 if cnt == 1: result += 1 print(result) 알고리즘 설명 주어진 숫자 중 소수가 있는지 없는지 찾는 ..
[알고리즘_06] 백준 2869번 달팽이는 올라가고 싶다 공부 포인트: 나는 집 가고 싶다 import math 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 알고리즘 A, B, V = map(int, input().split()) x = (V-B)/(A-B) if x == int(x): prin..
[알고리즘_05] 백준 1152번 단어의 개수 공부 포인트: split, remove 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 알고리즘 # 방법1 word = input().split() print(len(word)) # 방법2 print(len(input().split()))
[알고리즘_04] 백준 11654번 아스키코드 공부 포인트: 아스키 코드는 든든한 국밥 문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 알고리즘 print(ord(input()))
[알고리즘_03] 백준 4344번 평균은 넘겠지 공부 포인트 : 소수점 출력 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다. #테스트 케이스 입력 C = int(input()) for _ in range(C): N = list(map(int, input().split())..
[알고리즘_02] 백준 8958번 OX퀴즈 공부 포인트 : 인덱스, 이중for문 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. 알고리즘 case = int(input()) for ..
[알고리즘_01] 파이썬 알고리즘 연습 (백준) 파이썬 알고리즘을 제대로 풀기 위한 문제 순서 1. 백준 10869번 (입출력) https://www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net a, b = input().split() a = int(a) b = int(b) print(a+b) print(a-b) print(a*b) print(a//b) print(a%b) 2. 백준 2588번 (입출력) https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출..