목록PS/Python (269)
지나가던 개발자

두 개의 자연수를 입력받아 최대공약수와 최소공배수를 출력하는 프로그램을 작성하라는 문제다. 너무 간단한 문제다. 직접 최대공약수와 최소공배수를 구할 수도 있지만, 저는 math 모듈을 좋아하기에 모듈을 사용해서 해결했습니다. import math numbers = list(map(int, input().split())) print(str(math.gcd(numbers[0], numbers[1])) + "\n" + str(math.lcm(numbers[0], numbers[1]))) math 모듈을 import한 뒤, numbers 변수로 최대공약수와 최소공배수를 구할 수들을 리스트 형태로 입력받고, 최대공약수와 최소공배수를 구하여 출력합니다. 여기서 math.gcd() 함수는 최대공약수를, math.lc..

제1회 한국항공대학교 프로그래밍 경진대회(KAUPC)에 나온 1번 문제, 스트릿 코딩 파이터이다. 동아리원들이 한손 코딩, 노룩 코딩, 폰코딩이라는 무시무시한 기술들을 선보이며 진행되는 대회의 1등의 점수를 구하는 문제이다. 무시무시한 문제와는 다르게 정답 코드는 굉장히 간단하다. level = list(map(int, input().split())) n = int(input()) grades = [] for i in range(n): grade = 0 for j in range(3): a = list(map(int, input().split())) for k in range(3): grade += a[k] * level[k] grades.append(grade) print(max(grades)) 우선 ..

백준의 2747번 문제 풀이이다. 피보나치 수인데, 이런 문제로 굉장히 많이 나와가지고 그냥 한번 풀어 봐야겠다. 피보나치 수는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 예를 들어 [1, 1] 다음에는 1+1이니 2가 들어가서 [1, 1, 2], 다음에는 1+2니까 [1, 1, 2, 3, ...] 이런식으로 계속 가는 수열을 말한다. 따라서 이 원리대로 코드를 작성하여 보자. n = int(input()) fibonacci_numbers = [1, 1] i = 2 while True: fibonacci_numbers.append(fibonacci_numbers[i-1] + fibonacci_numbers[i-2]) i += 1 if len(fibonacci_numb..

팩토리얼! 간단한 수학계산 문제네요. 다들 아시겠지만 팩토리얼(!)은 1부터 N까지의 곱을 말하는 겁니다. 그러니까 예를 들어서 10!은 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 = 3628800이 되는 것이죠. 그래서 파이썬으로 코드를 짜보았습니다. n = int(input()) a = 1 for i in range(1, n+1): a = a * i print(a) 생각보다 간단하네요. 뭔가 처음에 제 생각에는 10줄은 되겠다 생각했는데 짜고 보니까 이정도밖에 안됐습니다. 팩토리얼할 수 n을 입력받은 후, n번동안 쭉 곱해주는 알고리즘이죠. 간단합니다. 그리고 제출해봤더니, 맞았네요. 근데 사실 그냥 이런 문제라서 알고리즘 짤라고 저렇게 한거지 사실 파이썬에는 팩토리얼을 계..

맨날 프로그래머스만 풀다가 오랜만에 백준에 돌아와서 푼 문제입니다! 굉장히 간단한 문제네요, 첫째 줄에 정수의 개수, 둘째 줄에 정수들을 입력받은 뒤, 뒤에 입력받은 정수들 중에서 가장 큰 값과 가장 작은 값을 구하는 문제입니다.(이럴거면 첫째 줄에 정수의 개수를 왜준걸까요) 그러면 뒷줄 정수들을 가지고 리스트를 만든 뒤에, 거기서 가장 큰 값과 가장 작은 값을 구하면 되겠습니다. 코드를 짜보면... a = input() b = list(map(int, input().split(' '))) print(min(b), max(b)) 뭐 간단한 코드죠? 윗줄에 입력받고, 아랫줄에 입력받은[input()] 것을 공백을 기준으로 잘라 리스트로 만든 뒤[.split(' ')], 이를 int를 사용한 map객체로 변..