목록PS (281)
지나가던 개발자

그냥 입력받은 요소를 잘~ 세기만 할 줄 알면 풀리는 문제이다. n = int(input()) opinion = [] for i in range(n): opinion.append(int(input())) if max(set(opinion), key=opinion.count) == 0: print("Junhee is not cute!") elif max(set(opinion), key=opinion.count) == 1: print("Junhee is cute!") 입력받은걸 세서 많은게 0이면 안귀엽다, 1이면 귀엽다고 출력한다. 리스트에서 가장 많은 요소를 세는 방법에 관해서는 다음 글을 참고했다. 백준에 제출해 보자. !

(웃음) (笑) print("파이팅!!") 백준에 제출해보자. 38초만에 글 하나를 날먹하는 블로거가 있다?!

2021 POSTECH Programming Contest의 A번 문제인 이다. N을 입력받은 후, 다시 N으로 돌아올 때까지 N을 회전시켜 나오는 값들을 더하는 문제이다. n = list(input()) total = 0 for i in range(len(n)): n.insert(0, n[-1]) del n[-1] total += int("".join(n)) print(total) N을 입력받은 후, N의 맨 뒷글자를 맨 앞으로 옮긴 뒤 맨 뒷글자를 삭제하고, N의 값을 total 변수에 더하는 과정을 N의 길이만큼 반복한다. やった!

SMUPC의 등장! 제1회 숙명여자대학교 교내 알고리즘 경진대회(SMUPC)의 A번 문제네요. 생각보다 되게 쉬웠던 것 같아요. 코드 공개하겠습니다 :) alphabets = list(input()) for i in range(len(alphabets)): times = sum(list(map(int, list(str(ord(alphabets[i])))))) print(alphabets[i] * times) 우선 출력할 알파벳들을 입력받습니다. 조금 이해하기 어려울 수 있는 줄이 3번 줄인데, 3번 줄은 알파벳에 해당하는 아스키코드 값을 구해서 그 자릿수들을 더하는 줄입니다. ord()함수를 이용해서 alphabets 리스트의 i번째 요소의 아스키 코드 값을 구한 뒤에, 그를 자릿수별로 나누기 위해서 문..

두 개의 자연수를 입력받아 최대공약수와 최소공배수를 출력하는 프로그램을 작성하라는 문제다. 너무 간단한 문제다. 직접 최대공약수와 최소공배수를 구할 수도 있지만, 저는 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번동안 쭉 곱해주는 알고리즘이죠. 간단합니다. 그리고 제출해봤더니, 맞았네요. 근데 사실 그냥 이런 문제라서 알고리즘 짤라고 저렇게 한거지 사실 파이썬에는 팩토리얼을 계..