코드업 기초문제(파이썬)

이푸름·2021년 7월 5일
0

6076)

입력
정수 1개가 입력된다.
(0 ~ 100)

출력
0부터 그 수까지 줄을 바꿔 한 개씩 출력한다.

a = int(input())
b = 0
while(a >= b):
    print(b)
    b+=1

while문이 아닌 for문을 사용하여서도 코드를 다시 작성해보았다.

a = int(input())
for i in range(a+1):
  print (i)

📌 for i in range(0, 10) : 0부터 10회 반복하겠다.
📌 for i in range (a) : 0부터 a-1 까지의 수열 (a번 반복)
📌 for i in range (a, b, c) : a 부터 b-1까지 c번씩 증가하며 반복 ( (b-a)//c 번 반복 )
📌 for i in list_name : list_name의 원소를 하나씩 탐색 ( 원소 개수만큼 반복 )

6077)

입력
정수 1개가 입력된다.
(0 ~ 100)

출력
1부터 그 수까지 짝수만 합해 출력한다.

a = int(input())
sum = 0
for i in range(a+1):
    if (i % 2 == 0):
        sum += i
print(sum)
        

6078)

입력
문자들이 1개씩 계속해서 입력된다.

출력
영문 소문자 'q'가 입력될 때까지 입력한 문자를 계속 출력한다.

a = input()
while (a != 'q'):
    print(a)

처음에는 위와같이 코드를 작성하였지만 출력한계 초과가 떴다.
위와 같이 하면 q가 입력되었을때 q는 출력되지 않는다는 문제점도 있다.

하지만 아래와 같이 조건문 처음에서 무조건 참으로 성립하도록 해주면 해결된다.

a = ' '
while (a != 'q'):
    a = input()
    print(a)

아니면 아래와 같이 break를 통해 빠져나가도록 하는 방법도 있다.

while(1): 
  a = input()
  print (a)
  if a == 'q' : break

6079)

입력
정수 1개가 입력된다.

출력
1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가,
입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.

a = int(input())
sum = 0
i = 0
while (sum < a):
    i += 1
    sum += i
print(i)

6080)

입력
서로 다른 주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수

출력
나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 1부터 오름차순 순서로 출력하도록 한다.

입력 예시
2 3

출력 예시
1 1
1 2
1 3
2 1
2 2
2 3

a, b = map(int, input().split())
for i in range (a):
    for j in range (b):
        print(i+1,j+1)

6081)

입력
16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.

출력
입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.

a = int(input(), 16)
for i in range (1, 16):
    print('%X*%X=%X' %(a, i, a*i))
    

📌16진수로 입력받기

value = int(input(), 16))

6082)

입력
30 보다 작은 정수 1개가 입력된다.
(1 ~ 29)

출력
1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9가 포함 되어있는 수인 경우, 그 수 대신 영문 대문자 X 를 출력한다.

a = int(input())
for i in range(1, a + 1):
    if(i % 10 == 3 or i % 10 == 6 or i % 10 == 9):
        print('X', end = ' ')
    else:
        print(i, end = ' ')

6083)

입력
빨녹파(r, g, b) 각 빛의 가짓수가 공백을 두고 입력된다.
예를 들어, 3 3 3 은 빨녹파 빛에 대해서 각각 0~2까지 3가지 색이 있음을 의미한다.
0 <= r,g,b <= 127

출력
만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345... abcde..., 가나다라마...)으로
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.

r,g,b = map(int, input().split())
count = 0
for i in range(r):
    for j in range(g):
        for k in range(b):
            print(i,j,k, sep = " ")
            count+=1
print(count)

📌
sep = " "를 사용하면 print문의 출력문들 사이에 해당하는 내용을 넣을 수 있다. 즉 구분자를 지정할 수 있는 것이다.

📌
하지만 format을 이용해 출력할 서식을 지정해 줄 수도 있다.
위의 겨우에는 이와같이 되어야 한다.
print('{} {} {}'.format(i, j, k))

숫자를 사용한 format
print("{0}월{1}일 입니다.".format(7,6))
출력 >>>>> 7월6일 입니다.

포맷을 통해 삽입할 부분을 순서에 맞게 {0} {1} {2}..... 로 넣어주고, .format(값1, 값2, 값3)을 넣어주면 순서에 따라 알아서 삽입되어 출력된다. 위 코드에서는 {0}에 7이 들어가고, {1}에 6이라는 숫자가 들어갔다.

%기호를 사용한 format
print("%s은 %d개 있습니다."%("꽃", 10))
출력 >>>>> 꽃은 10개 있습니다.

6084)

입력
h, b, c, s 가 공백을 두고 입력된다.
h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이다.

출력
필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
단, 소수점 첫째 자리까지의 정확도로 출력하고 MB를 공백을 두고 출력한다.

a, b, c, d = map(int, input().split())
print('%.1f' %(a*b*c*d/8/1024/1024),'MB')

저장공간은 h b c * s 이다. (bit 단위)
8bit = 1 byte
1024byte=1KB
1024 KB = 1MB

0개의 댓글