Python - 코드업 기초100제

수현·2022년 11월 22일
0

Coding Test

목록 보기
3/14
post-thumbnail

📍 1. 출력 (1~8번)

#Q. 1 문자열 출력(1)
print("Hello")

#Q. 2 문자열 출력 (2)
print("Hello World")

#Q. 3 특수 기호 출력 (1)
print("Hello\nWorld")

#Q. 4 특수 기호 출력 (2)
print("\'Hello\'")

#Q. 5 특수 기호 출력 (3)
print("\"Hello World\"")

#Q. 6 특수 기호 출력 (4)
print("\"!@#$%^&*()\'")

#Q. 7 특수 기호 출력 (5)
print("\"C:\\Download\\\'hello\'.py\"")

#Q. 8 특수 기호 출력 (6)
print("print(\"Hello\\nWorld\")")

📍 2. 입출력 (9~24번)

#Q. 1 문자 입출력
a = input()
print(a)

#Q. 2 정수 입출력
a = int(input())
print(a)

#Q. 3 실수 입출력
a = float(input())
print(a)

#Q. 4 정수 2개 입출력 
a = int(input())
b = int(input())
print(a)
print(b)

#Q. 5 문자 출력 순서 바꾸기 (1)
a = input()
b = input()
print(b)
print(a)

#Q. 6 실수 반복 출력
a = input()
print(a)
print(a)
print(a)

#Q. 7 공백을 두고 입력된 정수 입출력
a, b = map(int, input().split())
print(a)
print(b)

#Q. 8 문자 출력 순서 바꾸기 (2)
a, b = input().split()
print(b, a)

#Q. 9 한 줄로 반복 출력 
a = input()
print(a, a, a)

#Q. 10 :(콜론) 입출력
a, b = input().split(':')
print(a, b, sep=':')             #  구분 기호 sep=""

#Q. 11 구분기호 기준으로 입출력
y, m, d = input().split('.')
print(d, m, y, sep="-")

#Q. 12 구분기호 빼고 입출력
a, b = input().split("-")
print(a, b, sep="")

#Q. 13 문자열을 한 문자씩 출력
a = input()
for i in range(5):
    print(a[i])

#Q. 14 문자열 슬라이싱 입출력 
a = input()
print(a[0:2], a[2:4], a[4:6])

#Q. 15 구분기호 입출력
h, m, s = input().split(':')
print(m)

#Q. 16 문자열 2개 붙여 출력
a, b = input().split()
print(a+b)

📍 3. 값/출력 변환 (25~31번)

# Q. 1 정수 2개 입력받아 합 계산하기 
a, b = map(int, input().split())
print(a+b)

#Q. 2 실수 2개 입력받아 합 계산하기
a = float(input())
b = float(input())
print(a+b)

#Q. 3 10진 정수 입력받아 16진수로 출력하기 (1)
a = int(input())
print('%x'%a)       # %x (16진수 소문자), %o (8진수 소문자)

#Q. 4 10진 정수 입력받아 16진수로 출력하기 (2)
a = int(input())
print('%X'%a)       # %X (16진수 대문자), %O (8진수 대문자)

#Q. 5 16진 정수 입력받아 8진수로 출력하기
a = int(input(), 16) # 16진수 -> 10진수 변환
print('%o'%a)

#Q. 6 영문자 1개 입력받아 10진수로 변환하기
a = input()
print(ord(a))       # 문자 -> 10진수 유니코드 값으로 변환

#Q. 7 정수 입력받아 유니코드 문자로 변환하기
a = int(input())
print(chr(a))       # 10진수 정수 -> 유니코드 문자 변환 

📍 4. 산술연산 (32~45번)

#Q. 1 정수 1개 입력받아 부호 바꾸기
a = int(input())
print(-a)

#Q. 2 문자 1개 입력받아 다음 문자 출력하기
a = input()
b = ord(a)+1
print(chr(b))

#Q. 3 정수 2개 입력받아 차 계산하기
a, b = map(int, input().split())
print(a-b)

#Q. 4 실수 2개 입력받아 곱 계산하기
a, b = map(float, input().split())
print(a*b)

#Q. 5 단어 여러 번 출력하기
a, n = input().split() 
print(a * int(n)) # n번 반복 

#Q. 6 문장 여러 번 출력하기
n = input()
a = input()
print(a * int(n))

#Q. 7 정수 2개 입력받아 거듭제곱 계산하기
a, b = map(int, input().split())
print(a**b) # a를 b번 곱한 거듭제곱 

#Q. 8 실수 2개 입력받아 거듭제곱 계산하기
a, b = map(float, input().split())
print(a**b)

#Q. 9 정수 2개 입력받아 나눈 몫 계산하기
a, b = map(int, input().split())
print(a//b)

#Q. 10 정수 2개 입력받아 나눈 나머지 계산하기
a, b = map(int, input().split())
print(a%b)

#Q. 11 실수 1개 입력받아 소숫점이하 자리 변환하기
a = float(input())
print(format(a, ".2f"))
print(round(a, 2))     # round함수 (정수로 나눠질 경우 소수점 1자리 밖에 안나옴)

#Q. 12 실수 2개 입력받아 나눈 결과 계산하기
a, b = map(float, input().split())
print(format(a/b, ".3f"))

#Q. 13 정수 2개 입력받아 자동 계산하기
a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)
print(format(a/b, ".2f"))

#Q. 14 정수 3개 입력받아 합과 평균 출력하기
a, b, c = map(int, input().split())
sum = a+b+c
ave = sum/3
print(sum, format(ave, ".2f"))

📍 5. 비트시프트/비교연산 (46~51번)

#Q. 1 정수 1개 입력받아 2배 곱해 출력하기
a = int(input())
print(a<<1) # 2배 곱하기

#Q. 2 2의 거듭제곱 배로 곱해 출력하기
a, b = map(int, input().split())
print(a<<b)

#Q. 3 정수 2개 입력받아 비교하기 (1)
a, b = map(int, input().split())
if a<b:
    print("True")
else:
    print("False")

#Q. 4 정수 2개 입력받아 비교하기 (2)
a, b = map(int, input().split())
if a == b:
    print("True")
else:
    print("False")

#Q. 5 정수 2개 입력받아 비교하기 (3)
a, b = map(int, input().split())
if a <= b:
    print("True")
else:
    print("False")

#Q. 6 정수 2개 입력받아 비교하기 (4)
a, b = map(int, input().split())
if a != b:
    print("True")
else:
    print("False")

📍 6. 논리연산 (52~62번)

#Q. 1 정수 입력받아 참 거짓 평가하기
a = int(input())
print(bool(a)) # bool함수 : 0일 경우 False, 그 외 True

#Q. 2 참 거짓 바꾸기
a = bool(int(input()))
print(not a)

#Q. 3 둘 다 참일 경우만 참 출력하기
a, b = map(int, input().split())
print(bool(a) and bool(b))

#Q. 4 하나라도 참이면 참 출력하기
a, b = map(int, input().split())
print(bool(a) or bool(b))

#Q. 5 참/거짓이 서로 다를 때에만 참 출력하기
a, b = map(int, input().split())
a = bool(a)
b = bool(b)
print(a and (not b) or (not a) and b)

#Q. 6 참/거짓이 서로 같을 때에만 참 출력하기
a, b = map(int, input().split())
a = bool(a)
b = bool(b)
print((a and b) or ((not a) and (not b)))

#Q. 7 둘 다 거짓일 경우만 참 출력하기
a, b = map(int, input().split())
a = bool(a)
b = bool(b)
print((not a) and (not b))

#Q. 8 비트단위로 NOT 하여 출력하기
a = int(input())
print(~a)

#Q. 9 비트단위로 AND 하여 출력하기
a, b = map(int, input().split())
print(a & b)

#Q. 10 비트단위로 OR 하여 출력하기
a, b = map(int, input().split())
print(a | b)

#Q. 11 비트단위로 XOR 하여 출력하기
a, b = map(int, input().split())
print(a ^ b)

📍 7. 3항연산 (63~64번)

#Q. 1 정수 2개 입력받아 큰 값 출력하기
a, b = map(int, input().split())
c = a if a>=b else b
print(c)

#Q. 2 정수 3개 입력받아 가장 작은 값 출력하기
a, b, c = map(int, input().split())

min = (b if a>b else a) if ((b if a>b else a)<c) else c

if a > b:
    if b > c: 
        min = c
    else: 
        min = b
else: 
    if a > c:
        min = c
    else:
        min = a
print(min)

📍 8. 조건/선택 실행구조 (65~70번)

#Q. 1 정수 3개 입력받아 짝수만 출력하기
a, b, c = map(int, input().split())

for i in [a, b, c]:
    if i % 2 == 0:
        print(i)

#Q. 2 정수 3개 입력받아 짝/홀 출력하기
a, b, c = map(int, input().split())

for i in [a, b, c]:
    if i % 2 == 0:
        print("even")
    else:
        print("odd")
 
#Q. 3 정수 1개 입력받아 분류하기
a = int(input())

if a < 0 :
    if a % 2 == 0:
        print("A")
    else:
        print("B")
else:
    if a % 2 == 0:
        print("C")
    else:
        print("D")

#Q. 4 점수 입력받아 평가 출력하기
a = int(input())

if a >= 90:
    print("A")
elif a < 90 and a >= 70:
    print("B")
elif a < 70 and a>= 40:
    print("C")
else:
    print("D")

#Q. 5 평가 입력받아 다르게 출력하기
a = input()

if a == "A":
    print("best!!!")
elif a == "B":
    print("good!!")
elif a == "C":
    print("run!")
elif a == "D":
    print("slowly~")
else:
    print("what?")

#Q. 6 월 입력받아 계절 출력하기
a = int(input())

if a in [12, 1, 2]:
    print("winter")
elif a in [3, 4, 5]:
    print("spring")
elif a in [6, 7, 8]:
    print("summer")
elif a in [9, 10, 11]:
    print("fall")

📍 9. 반복 실행구조 (71~76번)

#Q. 1 0 입력될 때까지 무한 출력하기
n = 1
while n != 0:
    n = int(input())

    if n != 0:
        print(n)
    else:
        break

#Q. 2 정수 1개 입력받아 카운트다운 출력하기 (1)
n = int(input())

while n != 0:
    if n == 0:
        break
    else:
        print(n)
        n -= 1

#Q. 3 정수 1개 입력받아 카운트다운 출력하기 (2)
n = int(input())

while n != 0:
    if n == 0:
        print(n)
        break
    else:
        n -= 1
        print(n)

#Q. 4 문자 1개 입력받아 알파벳 출력하기
n = ord(input()) # 10진 아스키코드 정수로 변환
a = ord('a')

while a <= n:
    print(chr(a), end=" ")
    a += 1

#Q. 5 정수 1개 입력받아 그 수까지 출력하기 (1)
a = int(input())
b = int(0)

while b <= a:
    print(b)
    b += 1
    
#Q. 6 정수 1개 입력받아 그 수까지 출력하기 (2)
a = int(input())

for i in range(a+1):
    print(i)

📍 10. 종합 (77~90번)

#Q. 1 짝수 합 구하기
a = int(input())
sum = 0

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

print(sum)

#Q. 2 원하는 문자가 입력될 때까지 반복 출력하기
n = 0

while n != "q":
    n = input()

    if n != 'q':
        print(n)
    else:
        print(n)
        break

#Q. 3 언제까지 더해야 할까?
a = int(input())
sum = 0
for i in range(1, a+1):
    sum += i
    if sum >= a:
        print(i)
        break

#Q. 4 주사위 2개 던지기
n, m = map(int, input().split())

for i in range(1, n+1):
    for j in range(1, m+1):
        print(i, j)
#Q. 5 16진수 구구단 출력하기
a = input()
n = int(a, 16) # 16진수를 10진수로 변환

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

#Q. 6 3 6 9 게임의 왕이 되자
a = int(input())
for i in range(1, a+1):
    if i % 10 in [3, 6, 9]:
        print("X", end=" ")
    else:
        print(i, end=" ")
    
#Q. 7 빛 섞어 색 만들기
r, g, b = map(int, input().split())
for i in range(r):
    for j in range(g):
        for k in range(b):
            print(i, j, k)

print(r*g*b)

#Q. 8 소리 파일 저장용량 계산하기
h, b, c, s = map(int, input().split())
# h = 마이크로 소리 강약 체크 횟수
# b = 한 번 체크한 값을 저장할 때 사용하는 비트수
# c = 좌우 등 소리를 저장할 트랙 개수인 채널 개수
# s = 녹음할 시간(초)
# 필요한 저장공간 = h * b * c * s /8/1024/1024

answer = round(h*b*c*s/8/1024/1024, 1)

print("{} MB".format(answer))

#Q. 9 그림 파일 저장용량 계산하기
w, h, b = map(int, input().split())
# w = 이미지 가로 해상도
# h = 이미지 세로 해상도
# b = 한 픽셀을 저장하기 위한 비트 
# 필요한 저장공간 = h * b * c * s /8/1024/1024

answer = float(w*h*b/8/1024/1024)

print("%.2f MB"%answer)

#Q. 10 거기까지! 이제 그만~
n = int(input())
sum = 0
i = 1

while True:
    sum += i
    i += 1
    if sum >= n:
        print(sum)
        break

#Q. 11 3의 배수는 통과
n = int(input())

for i in range(1, n+1):
    if i % 3 == 0:
        continue
    else:
        print(i, end=" ")

#Q. 12 수 나열하기 (1)
a, d, n = map(int, input().split())
# a (시작값), d (등차의 값), n (몇 번째 수)

answer = a       # (1) for문 사용

for i in range(1, n):
    answer += d
    
print(answer)

answer = a; i = 1 # (2) while문 사용
while i < n:
    answer += d
    i += 1

print(answer)

#Q. 13 수 나열하기 (2)
a, r, n = map(int, input().split())
answer = a       # (1) for문 사용

for i in range(1, n):
    answer *= r
    
print(answer)

#Q. 14 수 나열하기 (3)
a, m, d, n = map(int, input().split())
answer = a       # (1) for문 사용

for i in range(1, n):
    answer = answer * m + d
    
print(answer)

#Q. 15 함께 문제 푸는 날
a, b, c = map(int, input().split()) # 방문 주기 
day = 1

while (day%a) != 0 or (day%b) != 0 or (day%c) != 0:
    day += 1

print(day)

📍 11. 리스트 (91~98번)

#Q. 1 이상한 출석 번호 부르기 (1)
n = int(input())
arr = list(map(int, input().split()))
answer = [0]*23

for i in arr:
    answer[i-1] += 1

for j in range(len(answer)):
    print(answer[j], end=" ")

#Q. 2 이상한 출석 번호 부르기 (2)
n = int(input())
arr = list(map(int, input().split()))

for i in range(n-1, -1, -1): # (1) for문 사용해 출력
    print(arr[i], end=" ")

print(*arr[::-1]) # (2) 배열 역순 출력
 
#Q. 3 이상한 출석 번호 부르기 (3)
n = int(input())
arr = list(map(int, input().split()))

print(min(arr))

#Q. 4 바둑판에 흰 돌 놓기
n = int(input()) # 흰 돌 개수
board = [[0] * 19 for _ in range(19)] # 19X19 배열 바둑판

for i in range(n):
    a, b = map(int, input().split()) # 흰 돌 좌표 
    if board[a-1][b-1] == 1: # 이미 흰돌이 놓인 경우 
        continue
    else:
        board[a-1][b-1] += 1

for line in board:
    print(*line)

#Q. 5 바둑알 십자 뒤집기
board = [list(map(int, input().split())) for _ in range(19)]
n = int(input()) # 십자 뒤집기 횟수

for i in range(n):
    a, b = map(int, input().split()) # 십자 뒤집기 좌표
    for j in range(19):
        if board[a-1][j] == 0: # 가로줄 바꾸기 
            board[a-1][j] = 1
        else:
            board[a-1][j] = 0

        if board[j][b-1] == 0: # 세로줄 바꾸기
            board[j][b-1] = 1
        else:
            board[j][b-1] = 0

for line in board:
    print(*line)

#Q. 6 설탕과자 뽑기
h, w = map(int, input().split()) # 격자판 세로, 가로
n = int(input()) # 줄에 놓을 수 있는 막대 개수

board = [[0]*w for _ in range(h)] # 격자판

for i in range(1, n+1):
    l, d, x, y = map(int, input().split()) # 막대 길이, 방향, 좌표
    for j in range(l):
        if d == 0: # 가로
            board[x-1][y-1+j] = 1
        else:
            board[x-1+j][y-1] = 1

for line in board:
    print(*line)

#Q. 7 성실한 개미
board = [list(map(int, input().split())) for _ in range(10)] # 10X10 미로 상자
answer = 0 
# (2,2)에서 시작, 방향은 오른쪽 -> 아래쪽
x = 1; y = 1
board[x][y] = 9

for i in range(20):
    if board[x][y+1] == 0: # 오른쪽 이동
        y += 1
    elif board[x+1][y] == 0: # 아래 이동 
        x += 1
    elif board[x][y+1] == 2: # 먹이 찾기 
        board[x][y+1] = 9
        break
    elif board[x+1][y] == 2: 
        board[x+1][y] = 9
        break

    board[x][y] = 9

    if x == 10 or y == 10: # 범위를 벗어날 경우 
        break

for line in board:
    print(*line)

📖출처📖

코드업 python

profile
Notion으로 이동 (https://24tngus.notion.site/3a6883f0f47041fe8045ef330a147da3?v=973a0b5ec78a4462bac8010e3b4cd5c0&pvs=4)

0개의 댓글