solved.ac
알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.
solved.ac
- 계속해서 Class1 문제들 풀어보겠습니다!
10998번 : A x B
10998번: A×B
두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- A x B를 출력하는 문제입니다.
def multiply(x, y):
return x * y
if __name__ == '__main__':
a, b = map(int, input().split())
print(multiply(a, b))
11654번 : 아스키 코드
11654번: 아스키 코드
알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- 입력값을 아스키 코드로 변환하는 문제입니다.
- 파이썬에서는 ord(str:c) 함수를 제공하고 있어 문자열이 입력으로 주어지면 아스키 코드를 출력해줍니다.
def print_range_to_n(n):
for i in range(1, n + 1):
print(i)
if __name__ == '__main__':
N = int(input())
print_range_to_n(N)
25083번 : 새싹
25083번: 새싹
아래 예제와 같이 새싹을 출력하시오.
www.acmicpc.net
- 이전 포스팅의 '10172번: 개' 문제와 유사한 문제로, \ 와 " 기호의 출력에 유의하여 코드를 작성해주시면 됩니다.
def print_sprout():
print(" ,r'\"7")
print("r`-_ ,' ,/")
print(" \\. \". L_r'")
print(" `~\\/")
print(" |")
print(" |")
if __name__ == '__main__':
print_sprout()
27866번 : 문자와 문자열
27866번: 문자와 문자열
첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$)
www.acmicpc.net
- 문자열과 정수 i가 주어지면, 문자열의 i번째 문자를 출력하는 문제입니다.
- 파이썬은 문자열의 index가 0부터 시작하기 때문에, i번째 문자를 출력하기 위해서는 index의 조정(i-1)이 필요합니다.
def get_character_at_index(string, index):
return string[index-1]
if __name__ == '__main__':
string = input()
index = int(input())
print(get_character_at_index(string, index))
2439번 : 별 찍기 - 2
2439번: 별 찍기 - 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
- '2438번: 별 찍기 - 1' 문제의 변형된 문제로, 우측 정렬된 별들을 출력하는 문제입니다.
- 이 문제의 경우 공백을 라인마다 먼저 출력해준뒤, 뒤이어 별을 출력해주시면 됩니다.
def print_right_angled_triangle(n):
for i in range(n):
print((n-(i+1)) * ' ' + (i+1) * '*')
if __name__ == '__main__':
N = int(input())
print_right_angled_triangle(N)
11720번 : 숫자의 합
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
- 숫자 N개가 공백없이 주어지기 때문에 이는 문자열의 각 자리를 int형으로 변환하여 sum을 구해주는 문제와 동일합니다.
- Comprehension을 이용해 각 자리를 형 변환하여 합을 구해주는 함수를 정의하였습니다.
def sum_of_digits(number):
return sum(int(digit) for digit in number)
if __name__ == '__main__':
N = int(input())
number = input()
print(sum_of_digits(number))
2562번 : 최댓값
2562번: 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어
www.acmicpc.net
- 최댓값이 몇 번째 수인지도 구해야하기 때문에 for문의 range를 (1, 10)로 설정하고 최댓값에 해당하는 i를 찾아 반환해주는 식으로 코드를 구현하였습니다.
def find_max_and_position():
max_num, max_position = -1, 0
for i in range(1, 10):
num = int(input())
if num > max_num:
max_num, max_position = num, i
return max_num, max_position
if __name__ == '__main__':
max_number, position = find_max_and_position()
print(max_number)
print(position)
2884번 : 알람 시계
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
- 주어지는 시간의 45분 전을 계산하는 문제입니다.
- 만약 M(분)이 45보다 크다면 M - 45를 수행할 수 있도록 구현합니다.
- M이 45분 미만인 경우에는 M이 음수가 될 수는 없기 때문에 H에서 1시간을 줄이고 표준 시간에 맞추기 위해 24로 나눈 나머지를 반환할 수 있도록 합니다. 또한 M은 시간이 1시간 줄어든 만큼 15분 늘기 때문에(60분 - 45분 = 15분) M + 15를 수행해줍니다.
def adjust_time(hours, minutes):
if minutes < 45:
hours = (hours - 1) % 24
minutes += 15
else:
minutes -= 45
return hours, minutes
if __name__ == '__main__':
H, M = map(int, input().split())
new_H, new_M = adjust_time(H, M)
print(new_H, new_M)
10250번 : ACM 호텔
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net
- 손님에게 배정될 방 번호를 계산하는 문제입니다. 우선 손님의 순서를 호텔 층수인 h로 나눈 나머지를 계산하게 되면 층수가 결정되고, 몫을 계산하면 멀어지는 순서를 정할 수 있습니다.
def calculate_room_number(h, w, n):
floor = n % h
room = n // h + 1
if floor == 0:
floor = h
room -= 1
return floor * 100 + room
if __name__ == '__main__':
T = int(input())
for _ in range(T):
h, w, n = map(int, input().split())
print(calculate_room_number(h, w, n))
- 아래는 방 번호가 결정되는 과정을 간단히 시각화해본 결과입니다. 입력 후 방 번호 계산 버튼을 누르게 되면 실행합니다.
각 층의 방 수:
손님 순서:
'알고리즘 문제 > Class (solved.ac)' 카테고리의 다른 글
Class 2 (Hashing ~ 부녀회장이 될테야) (1) | 2023.12.15 |
---|---|
Class 2 (직각삼각형 ~ 블랙잭) (0) | 2023.12.06 |
Class 1 (최소, 최대 ~ 단어 공부) (4) | 2023.12.01 |
Class 1 (윤년 ~ A+B - 5) (1) | 2023.11.26 |
Class 1 (A+B ~ N 찍기) (2) | 2023.11.21 |