코드업 Python 기본 100
https://codeup.kr/problemsetsol.php?psid=33
문제집 / Python 기초 100제
codeup.kr
# 6089 - 수 나열하기
예를 들어 2 6 18 54 162 486 ... 은 2부터 시작해 이전에 만든 수에 3을 곱해 다음 수를 만든 수열이다.
이러한 것을 수학에서는 앞뒤 수들의 비율이 같다고 하여 등비(비율이 같다의 한문 말) 수열이라고 한다.
시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때
n번째 수를 출력하는 프로그램을 만들어보자.
# 내 풀이
a, r, n = map(int, input().split())
print(a*(r**(n-1)))
# 모범 소스
a, r, n = input().split()
a = int(a)
r = int(r)
n = int(n)
for i in range(1, n) :
a = a*r
print(a)
# 6090 - 수 나열하기
예를 들어 1 -1 3 -5 11 -21 43 ... 은 1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.
시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하는 프로그램을 만들어보자.
# 내 풀이, 모범 소스
a, m, d, n = map(int, input().split())
for i in range(1, n):
a = a*m+d
print(a)
# 6091 - 함께 문제 푸는 날
같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가 매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?
예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다
한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다.
아래의 코드를 읽고 이해한 후 도전해 보자.
day는 날 수, a/b/c는 방문 주기이다.
...
d = 1
while d%a!=0 or d%b!=0 or d%c!=0 :
d += 1
print(d)
...
# 내 풀이, 모범 소스
a, b, c = map(int, input().split())
d = 1
while d%a!=0 or d%b!=0 or d%c!=0:
d += 1
print(d)
# 6092 - 이상한 출석 번호 부르기1
정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다.
출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.
# 모범 소스
n = int(input()) #개수를 입력받아 n에 정수로 저장
a = input().split() #공백을 기준으로 잘라 a에 순서대로 저장
for i in range(n) : #0부터 n-1까지...
a[i] = int(a[i]) #a에 순서대로 저장되어있는 각 값을 정수로 변환해 다시 저장
d = [] #d라는 이름의 빈 리스트 [ ] 변수를 만듦. 대괄호 기호 [ ] 를 사용한다.
for i in range(24) : #[0, 0, 0, ... , 0, 0, 0] 과 같이 24개의 정수 값 0을 추가해 넣음
d.append(0) #각 값은 d[0], d[1], d[2], ... , d[22], d[23] 으로 값을 읽고 저장할 수 있음.
for i in range(n) : #번호를 부를 때마다, 그 번호에 대한 카운트 1씩 증가
d[a[i]] += 1
for i in range(1, 24) : #카운트한 값을 공백을 두고 출력
print(d[i], end=' ')
# 6092 - 이상한 출석 번호 부르기 2
정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데, 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 것을 해보고 싶어졌다.
출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.
예시
...
for i in range(n-1, -1, -1) :
print(a[i], end=' ')
...
# 내 풀이, 모범 소스
n = int(input()) #개수를 입력받아 n에 정수로 저장
a = input().split() #공백을 기준으로 잘라 a에 순서대로 저장
for i in range(n) : #0부터 n-1까지...
a[i] = int(a[i]) #a에 순서대로 저장되어있는 각 값을 정수로 변환해 다시 저장
for i in range(n-1, -1, -1): # 세 번째 -1은 각 숫자가 이전 숫자에서 감소를 지정
print(a[i], end = ' ')
# 6094 - 이상한 출석 번호 부르기3
정보 선생님은 오늘도 이상한 출석을 부른다.
출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.
단, 첫 번째 번호와 마지막 번호가 몇 번인지는 아무도 모른다.
음수(-) 번호, 0번 번호도 있을 수 있다.
참고
리스트에 출석 번호를 기록해 두었다가, 그 중에서 가장 작은 값을 찾아내면 된다.
그런데, 가장 작은 값은 어떻게 어떤 것과 비교하고, 어떻게 찾아야 할까?
# 내 풀이
n = int(input())
a = input().split()
for i in range(n) :
a[i] = int(a[i])
if a[0] <= a[1]:
b = a[0]
else:
b = a[1]
for i in range(1, n-1):
if b <= a[i+1]:
continue
else:
b = a[i+1]
print(b)
# 모범 소스
n = int(input())
a = input().split()
for i in range(n) :
a[i] = int(a[i])
min = a[0]
for i in range(0, n) :
if a[i] < min :
min = a[i]
print(min)
'코딩테스트 > 코드업' 카테고리의 다른 글
(5/22) [코드업 Python 기본 100제] 기초 - 리스트 (0) | 2023.05.22 |
---|---|
(5/11) [코드업 Python 기본 100제] 기초 - 리스트 (0) | 2023.05.11 |
(5/9) [코드업 Python 기본 100제] 기초 - 종합 (1) | 2023.05.09 |
(5/8) [코드업 Python 기본 100제] 기초 - 종합 (0) | 2023.05.08 |
(5/4) [코드업 Python 기본 100제] 기초-선택실행구조, 반복실행구조, 종합 (0) | 2023.05.04 |