CodeUp-6081~6090-python

cosmos·2021년 3월 5일
4
post-thumbnail

6081번

문제📖

풀이🙏

  • 16진수로 한 자리 수가 입력된다.
  • 입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
  • 계산 결과도 16진수로 출력해야 한다.
    -> int(input(), 16)을 사용하여 10진수 정수인 변수를 16진수로 입력받는다.
    -> %X 연산자를 이용해 16진수를 출력한다.

코드💻

import sys

var = int(sys.stdin.readline(), 16)

for i in range(1,16):
    print('%X'%var, '*%X'%i, '=%X'%(var*i), sep='')

결과😎

출처📝
https://codeup.kr/problem.php?id=6081

6082번

문제📖

풀이🙏

  • 30보다 작은 정수 1개가 입력된다.
  • 1부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
    3 또는 6 또는 9가 포함 되어있는 수인 경우, 그 수 대신 영문 대문자 X를 출력한다.
    -> 3,6,9가 포함되어있다는 말은 즉슨, 13,23,16,26,19,29도 포함시킨다는 얘기이다. (range(1,30))
    -> list comprehension + if else로 구현하였다.

코드💻

import sys

num = int(sys.stdin.readline())
result = ['X' if i%10 == 3 or i%10 ==6 or i%10 ==9 else i for i in range(1,num+1)]

print(" ".join(map(str,result)))

결과😎

출처📝
https://codeup.kr/problem.php?id=6082

6083번

문제📖

풀이🙏

  • 빨녹파 (r, g, b) 각 빛의 가짓수가 공백을 두고 입력된다.
    -> map + split()로 입력받는다.
  • 만들 수 있는 rgb 색의 정보를 오름차순으로 줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.
    -> 삼중 for문으로 구현했다.

코드💻

import sys

r, g, b = map(int,sys.stdin.readline().split())
cnt = 0

for i in range(r):
    for j in range(g):
        for n in range(b):
            print(i, j, n)
            cnt += 1
        
print(cnt)

결과😎

출처📝
https://codeup.kr/problem.php?id=6083

6084번

문제📖

풀이🙏

  • h, b, c, s가 공백을 두고 입력된다.
  • 필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
  • 단, 소수점 첫째 자리까지의 정확도로 출력하고 MB를 공백을 두고 출력한다.
    -> 본문 위의 설명을보면 계산 공식이 hbc*s/8/1024/1024이므로 이를 적용한다.
    -> 소수점 첫째 자리 출력이므로 around(var,1) 또는 %.1f를 사용한다.

코드💻

import sys

h, b, c, s = map(int,sys.stdin.readline().split())

print("%.1f MB" %(h*b*c*s/1024/1024/8))

결과😎

출처📝
https://codeup.kr/problem.php?id=6084

6085번

문제📖

풀이🙏

  • w, h, b가 공백을 두고 입력된다.
  • 필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
  • 단, 소수점 셋째 자리에서 반올림하여 둘째 자리까지 출력한다.
    -> 6064번과 풀이방식이 같다.

코드💻

import sys

w, h, b = map(int,sys.stdin.readline().split())

print("%.2f MB" %(w*h*b/8/1024/1024))

결과😎

출처📝
https://codeup.kr/problem.php?id=6085

6086번

문제📖

풀이🙏

  • 언제까지 합을 계산할지, 정수 1개를 입력받는다.
  • 1,2,3,4 .. 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우, 그때까지의 합을 출력한다.
    -> 입력된 수가 1이면 정답도 1이다.
    -> if else조건문 + for + range 반복문 + break + 증감표현식으로 구현했다.

코드💻

import sys

num = int(sys.stdin.readline())
result = 0

if num == 1:
    print(1)
else:
    for i in range(1,num+1):
        if result >= num:
            print(result)
            break
        result += i

결과😎

출처📝
https://codeup.kr/problem.php?id=6086

6087번

문제📖

풀이🙏

  • 정수 1개를 입력받는다.
  • 1부터 입력한 정수보다 작거나 같을 때까지 1씩 증가시켜 출력하되 3의 배수는 출력하지 않는다.
    -> list comprehension + if 조건문으로 구현했다.

코드💻

import sys

num = int(sys.stdin.readline())
result = [i for i in range(1,num+1) if i%3 != 0]

print(" ".join(map(str,result)))

결과😎

출처📝
https://codeup.kr/problem.php?id=6087

6088번

문제📖

풀이🙏

  • 시작 값, 등차의 값, 몇 번째 수 인지를 의미하는 정수가 공백을 두고 입력된다.
  • n번째 수를 출력한다.
    -> 등차수열을 구현한다.
    코드💻
import sys

a, d, n = map(int,sys.stdin.readline().split())

print(a+d*(n-1))

결과😎

출처📝
https://codeup.kr/problem.php?id=6088

6089번

문제📖

풀이🙏

  • 시작 값, 등비의 값, 몇 번째 인지를 나타내는 정수가 공백을 두고 입력된다.
  • n번째 수를 출력하라.
    -> 공비수열을 구현하면된다.

코드💻

import sys

a, r, n = map(int,sys.stdin.readline().split())

print(a*r**(n-1))

결과😎

출처📝
https://codeup.kr/problem.php?id=6089

6090번

문제📖

풀이🙏

  • 시작 값, 곱할 값, 더할 값, 몇 번째 인지를 나타내는 정수가 공백을 두고 입력된다.
  • n번째 수를 출력한다.

코드💻

import sys

a, m, d, n = map(int,sys.stdin.readline().split())

for i in range(n - 1):
    a = a * m + d

print(a)

결과😎

출처📝
https://codeup.kr/problem.php?id=6090

깃허브

github

0개의 댓글