[Python] 백준 11654 - 아스키 코드
·
Algorithm
문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 정답 a = input() print(ord(a)) 참고 ord() 함수는 특정한 문자를 아스키코드로 변환해준다. 반대로 chr() 함수는 아스키코드를 특정한 문자로 변환해준다.
[Python] 1부터 N까지 합 구하기
·
Algorithm/Python
첫 번째 방법 def sum_n(n): sum = 0 for i in range(n+1): sum += i return sum print(sum_n(10)) print(sum_n(100)) 흔히 알고 있는 sum을 이용해 1부터 N까지의 합을 구하는 프로그램이다. 사실 다른 방법은 생각도 못해봤는데 가우스의 합 공식을 이용하면 더 간단하게 풀 수 있다. 두 번째 방법 def sum_n(n): return n * (n + 1) //2 print(sum_n(10)) print(sum_n(100)) 코드가 훨씬 간단해졌다. 역시 수학을 알면 알수록 알고리즘에 많은 도움이 되는 것 같다.
[Python] 백준 11399 - ATM
·
Algorithm
문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다..
[Python] 백준 11047 - 동전 0
·
Algorithm
문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 정답 N, K = map(int, input().split()) coin = [] count = 0 for i in range(N): coin.append(int(i..
[Python] 백준 5543 - 상근날드
·
Algorithm
문제 상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다. 햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다. 햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오. 입력 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다. 출력 첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다. 정답 hambuger = 20..
[Python] 백준 2438 - 별 찍기 - 1
·
Algorithm
문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. for문을 이용한 기본적인 별 찍기 문제이다. 정답 n = int(input()) for i in range(1, n+1): print("*" * i) 참고 별 찍기 문제에 이중 for문을 안써도 된다니.. 이건 진짜 신세계였다. 파이썬은 문자열끼리 곱하거나 더할수있다.