일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- pypy3
- 자바
- BOJ
- baekjoon
- Java11
- Python 3
- 백준
- programmers
- Codeup
- 단계별로 풀어보기
- 명품 자바 프로그래밍
- JAVA 11
- 기초100제
- 개념
- 파이썬
- 응용
- Codeforces Round #802 (Div. 2)
- 기본
- Python
- level1
- 코딩테스트
- SELECT 절
- 공공데이터
- java
- 이론
- 헤드퍼스트 디자인패턴
- SQLD / SQLP
- GROUP BY 절
- HAVING 절
- 기초
- Today
- Total
Development Project
[ CodeUp 기초 100제 - Python(05/22) ] 6076 ~ 6090 본문
- 6076 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기2(설명)(py) - 정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력하라
num = int(input())
i=0
while i<=num:
print(i)
i+=1
#
n = int(input())
for i in range(n+1) :
print(i)
》 6014번(for문/while문)과 같은 방법이다.
- 6077 : [기초-종합] 짝수 합 구하기(설명)(py) - 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구하라
n = int(input())//2
sum=0
while n>0:
sum+=(n*2)
n-=1
print(sum)
#
n = int(input())
s = 0
for i in range(1, n+1) :
if i%2==0 :
s += i
print(s)
》 6014번(for문/while문), 6040번(연산자)과 같은 방법이다. 첫번째 방법 코드를 설명하자면, 숫자*2는 짝수임을 활용한 방법으로, 원래 숫자에 2를 나눈 몫은 *2를 하였을때 원래 숫자와 같거나 크지않은 숫자이므로 각 2를 곱한 수가 짝수가 됨을 이용하였다.
- 6078 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기(py) - 영문 소문자 'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성하라
ch = input()
while ch!="q":
print(ch)
ch = input()
print(ch)
》 6040번(연산자)과 같은 방법이다. 파이썬은 문자(열)비교에도 ==, !=가 쓰인다.
- 6079 : [기초-종합] 언제까지 더해야 할까?(py) - 1, 2, 3 ... 을 계속 더해 나갈 때, 그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지만 계속 더하는 프로그램을 작성하라
num = int(input())
i=1
sum=0
while sum<num:
sum+=i
i+=1
print(i-1)
》 6014번(for문/while문)과 같은 방법이다.
- 6080 : [기초-종합] 주사위 2개 던지기(설명)(py) - 1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때, 나올 수 있는 모든 경우를 출력하라
n,m = input().split()
for i in range(1, int(n)+1):
for j in range(1, int(m)+1):
print(i,j)
》 6014번(for문/while문)과 같은 방법이다. 반복문은 겹쳐 사용하면 경우의 수를 뽑아내는데 유용하다.
- 6081 : [기초-종합] 16진수 구구단 출력하기(py) - A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력하라
num = int(input(),16)
for i in range(1, 16):
print("%X"%num+"*"+'%X'%i+"="+'%X'%(num*i))
#
n = int(input(), 16)
for i in range(1, 16):
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')
》 6014번(for문/while문), 6027번(16진수 출력), 6042번(print문 형식 지정방법)과 같은 방법이다.
- 6082 : [기초-종합] 3 6 9 게임의 왕이 되자(설명)(py) - 30 보다 작은 정수 1개가 입력되고, 1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데, 3 또는 6 또는 9가 포함 되어있는 수인 경우, 그 수 대신 영문 대문자 X 를 출력하라
num = int(input())
for i in range(1, num+1):
if i%10==3 or i%10==6 or i%10==9 :
print("X", end=" ")
else:
print(i, end=" ")
#
num = int(input())
for i in range(1, num+1):
if i//10==0 :
if i%3==0:
print("X", end=" ")
else:
print(i, end=" ")
else :
if ((i%10)%3==0 or (i//10)%3==0) and i%10!=0:
print("X", end=" ")
else:
print(i, end=" ")
》 6014번(for문/while문), 6048번(if문/삼항연산자)과 같은 방법이다. 알고리즘에 따라 코드의 길이 및 가독성은 차이가 많이나므로 여러방법으로 풀어보는 습관을 들이자!
- 6083 : [기초-종합] 빛 섞어 색 만들기(설명)(py) - 빨강(r), 초록(g), 파랑(b) 각 빛의 가짓수가 주어질 때, 주어진 rgb 빛들을 섞어 만들 수 있는 모든 경우의 조합(r g b)과 만들 수 있는 색의 가짓 수를 계산하라
r,g,b = input().split()
for i in range(int(r)):
for j in range(int(g)):
for k in range(int(b)):
print(i,j,k)
print(int(r)*int(g)*int(b))
》 6014번(for문/while문), 6080(반복문중첩)과 같은 방법이다.
- 6084 : [기초-종합] 소리 파일 저장용량 계산하기(py) - h, b, c, s 가 공백을 두고 입력될때, 필요한 저장 공간을 MB 단위로 바꾸어 출력하라
* 단, h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이고, 출력물은 소수점 첫째 자리까지의 정확도로 출력하고 MB를 공백을 두고 출력한다.
h,b,c,s = input().split()
print(round(int(h)*int(b)*int(c)*int(s)/8/1024/1024, 1), end=" ")
print("MB")
#
h,b,c,s = input().split()
print(round(int(h)*int(b)*int(c)*int(s)/8/1024/1024, 1), "MB")
》 6042번(print문 형식 지정방법)과 같은 방법이다. 4가지의 표현방식의 몇 차이점과 사용법 꼭꼭 알아두자!
- 6085 : [기초-종합] 그림 파일 저장용량 계산하기(py) - w, h, b 가 공백을 두고 입력될때, 필요한 저장 공간을 MB 단위로 바꾸어 출력하라.
* 단, w, h는 모두 정수이고 1~1024 이며 b는 40이하의 4의 배수이고, 출력물은 소수점 셋째 자리에서 반올림하여 둘째 자리까지 출력한다.
w,h,b = input().split()
print("{:.2f}".format(int(w)*int(h)*int(b)/8/1024/1024), "MB")
》 6042번(print문 형식 지정방법)과 같은 방법이다. 많이 사용된다.
- 6086 : [기초-종합] 거기까지! 이제 그만~(설명)(py) - 정수 1개를 입력받고, 1, 2, 3, 4, 5 ... 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우, 그때까지의 합을 출력하라
* 단, 입력되는 자연수는 100,000,000이하이다.
num = int(input())
sum=0
i=0
while(sum<num):
sum+=i
i+=1
print(sum)
》 6014번(for문/while문)과 같은 문제이다.
- 6087 : [기초-종합] 3의 배수는 통과(설명)(py) - 1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되, 3의 배수인 경우는 출력하지 않도록 만들어라
num = int(input())
for i in range(num+1):
if i%3==0:
continue
else:
print(i, end=" ")
》 6014번(for문/while문)과 같은 문제이다. 반복문에서는 반복을 빠져나오기 위한 명령어로 continue와 break가 있다. continue는 이번실행만 건너뛰고 반복문 계속 진행하는 것이고, break는 만나자마자 반복문 하나 밖을 나오는 명령어이다.
- 6088 : [기초-종합] 수 나열하기1(py) - 시작 값(a), 등차의 값(d), 몇 번째 수 인지를 의미하는 정수(n)가 공백을 두고 입력되면, n번째 수를 출력하라
a,d,n = input().split()
print(int(a)+(int(n)-1)*int(d))
》 이 문제는 특별한 문법은 없지만 알고리즘을 발견하는게 핵심이다. 대부분의 식 찾는 문제들은 조금만 나열해보면 쉽게 규칙을 찾을 수 있으니 모르겠으면 겁먹지말고 차분히 나열부터 해보자! 안전하게 4~5번까지는 해보는게 좋다! 표를 보며 이해하길 바란다.
1번째 수 | 2번째 수 | 3번째 수 | 4번째 수 | n번째 수 |
a | a+d | a+2d | a+3d | a+(n-1)d |
- 6089 : [기초-종합] 수 나열하기2(py) - 시작 값(a), 등비의 값(r), 몇 번째 인지를 나타내는 정수(n)가 공백을 두고 입력되면, n번째 수를 출력하라
a,r,n = input().split()
print(int(a)*int(r)**(int(n)-1))
》 6088번과 같은 유형의 문제이다. 표를 보며 이해하길 바란다.
1번째 수 | 2번째 수 | 3번째 수 | 4번째 수 | n번째 수 |
a | a*r | a*r*r | a*r*r*r | a*(r**(n-1)) |
- 6090 : [기초-종합] 수 나열하기3(py) - 시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째 인지를 나타내는 정수(n)가 공백을 두고 입력되면, n번째 수를 출력하라. 연산은 곱한뒤에 더한다.
단, a, m, d는 -50 ~ +50, n은 10이하의 자연수이다.
a,m,d,n = input().split()
a=int(a)
m=int(m)
d=int(d)
n=int(n)
sum=0
for i in range(0, n-1):
sum+=m**i
print(a*m**(n-1)+d*sum)
》 6088번과 같은 유형의 문제이다. 복잡해졌지만 규칙을 찾아보면 단순하다! 표를 보며 이해하길 바란다.
1번째 수 | 2번째 수 | 3번째 수 | 4번째 수 | 5번째 수 | n번째 수 |
a | ma+d | m(ma+d)+d => am**2+d(m+1) |
m(am**2+dm+d)+d => am**3+d(m**2+m+1) |
m(am**3+d(m**2+m+1))+d => am**4+d(m**3+m**2+m+1) |
am**(n-1) +d(m**(n-2) +(m**(n-3) +... +1) |
'CodingTest > CodeUp' 카테고리의 다른 글
[ CodeUp 기초 100제 - Python(05/24) ] 6091 ~ 6098 (0) | 2022.05.24 |
---|---|
[ CodeUp 기초 100제 - Python(05/22) ] 6061 ~ 6075 (0) | 2022.05.23 |
[ CodeUp 기초 100제 - Python(05/20) ] 6046 ~ 6060 (0) | 2022.05.20 |
[ CodeUp 기초 100제 - Python(05/19) ] 6031 ~ 6045 (0) | 2022.05.19 |
[ CodeUp 기초 100제 - Python(05/18) ] 6016 ~ 6030 (0) | 2022.05.19 |