[코드업 CodeUp] 파이썬 기초 100제 6001번 ~ 6100번 풀이

우디·2021년 12월 24일
9

알고리즘

목록 보기
3/8
post-thumbnail

코드업 기초100제

6001.

print("Hello")

6002.

print("Hello World")

6003.

print("Hello\nWorld")

6004.

print("'Hello'")

6005.

print('"Hello World"')

6006.

print("\"!@#$%^&*()'")

6007.

print("\"C:\\Download\\'hello'.py\"")

6008.

print('print("Hello\\nWorld")')

6009.

print(input())

6010.

print(int(input()))

6011.

print(float(input()))

6012.

print(input() + "\n" + input())

6013.

a = input()
b = input()

print(b + "\n" + a)

6014.

print((input() + "\n") * 3)

6015.

a, b = map(str, input().split())

print(a+"\n"+b)

6016.

a, b = map(str, input().split())

print(b + " " + a)

6017.

print(((input() + " ") * 3).strip())

6018.

print(input())

6019.

year, mon, day = map(str, input().split("."))

print(f"{day}-{mon}-{year}")

6020.

a, b = map(str, input().split("-"))

print(f"{a}{b}")

6021.

print("\n".join(list(map(str, input()))))

6022.

n = input()

print(n[0:2], n[2:4], n[4:])

6023.

print(input().split(":")[1])

6024.

print(input().replace(" ", ""))

6025.

a, b = map(int, input().split())

print(a+b)

6026.

print(float(input()) + float(input()))

6027. 16진수(hexadecimal) 8진수(octal)

print("%x" % int(input()))

%x로 출력하면 16진수(hexadecimal) 소문자로 출력된다
%o로 출력하면 8진수(octal) 문자열로 출력된다

6028.

print(("%x" % int(input())).upper())

6029. 16진수를 8진수로

입력된 수를 16진수로 인식

print("%o" % int(input(), 16))

6030. 유니코드 값으로 출력

입력받은 문자를 10진수 유니코드 값으로 변환한 후, c에 저장한다

print(ord(input()))

6031. 유니코드 문자로 출력

입력받은 문자를 정수형으로 변환 후, 유니코드 문자로 변환 후, c에 저장한다

print(chr(int(input())))

6032.

print(-int(input()))

6033.

print(chr(ord(input()) + 1))

6034.

a, b = map(float, input().split())

print(a * b)

6035.

a, b = map(float, input().split())

print(a * b)

6036.

w, n = map(str, input().split())

print(w * int(n))

6037.

n = int(input())

print(input() * n)

6038. 제곱근

a, b = map(int, input().split())

print(a**b)

6039.

a,b = map(float, input().split())

print(a**b)

6040.

a,b = map(int, input().split())

print(a // b)

6041.

a, b = map(int, input().split())

print(a % b)

6042. 소숫점 이하 *번째 반올림

두 번째 자리까지의 정확도로 반올림

print(format(float(input()), ".2f"))

6043.

a, b = map(float, input().split())

print(format(a / b, ".3f"))

6044.

a, b = map(int, input().split())
c = format(a / b, ".2f")

print(f"{a + b}\n{a - b}\n{a * b}\n{a // b}\n{a % b}\n{c}")

6045.

nums = list(map(int, input().split()))

print(sum(nums), format(sum(nums) / len(nums), ".2f"))

6046.

print(int(input()) * 2)

6047.

a, b = map(int, input().split())

print(a * 2**b)

6048.

a, b = map(int, input().split())

print("True" if a < b else "False")

6049.

a, b = map(int, input().split())

print("True" if a == b else "False")

6050.

a, b = map(int, input().split())

print("True" if b >= a else "False")

6051.

a, b = map(int, input().split())

print("True" if a != b else "False")

6052.

print("False" if not int(input()) else "True")

6053.

print("False" if int(input()) else "True")

6054.

a, b = map(int, input().split())

print("True" if a and b else "False")

6055.

a, b = map(int, input().split())

print("True" if a or b else "False")

6056. 참 / 거짓이 서로 다를 때 True

a, b = map(int, input().split())

print("True" if (a and not b) or (not a and b) else "False")

6057. 참 / 거짓이 서로 같을 때 True

a, b = map(int, input().split())

print("True" if (not a and not b) or (a and b) else "False")

6058.

a, b = map(int, input().split())

print("False" if a or b else "True")

6059. 비트단위로 NOT 하여 출력하기

print(~int(input()))

입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.
비트단위(bitwise)연산자 ~ 를 붙이면 된다.(~ : tilde, 틸드라고 읽는다.)

** 비트단위(bitwise) 연산자는,
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
가 있다.

예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면
00000000 00000000 00000000 00000001 이고,
~1은 11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미한다.

예시
a = 1
print(~a) #-2가 출력된다.

참고
컴퓨터에 저장되는 모든 데이터들은 2진수 형태로 바뀌어 저장된다.
0과 1로만 구성되는 비트단위들로 변환되어 저장되는데,
양의 정수는 2진수 형태로 바뀌어 저장되고, 음의 정수는 "2의 보수 표현"방법으로 저장된다.

양의 정수 5를 32비트로 저장하면,

5의 2진수 형태인 101이 32비트로 만들어져
00000000 00000000 00000000 00000101
로 저장된다.(공백은 보기 편하도록 임의로 분리)

32비트 형의 정수 0은
00000000 00000000 00000000 00000000

그리고 -1은 0에서 1을 더 빼고 32비트만 표시하는 형태로
11111111 11111111 11111111 11111111 로 저장된다.

-2는 -1에서 1을 더 빼면 된다.
11111111 11111111 11111111 11111110 로 저장된다.

이러한 내용을 간단히 표현하면, 정수 n이라고 할 때,

~n = -n - 1
-n = ~n + 1 과 같은 관계로 표현할 수 있다.

6060. 비트단위로 AND 하여 출력하기

a, b = map(int, input().split())

print(int(a & b))

6061. 비트단위로 OR 하여 출력하기

a, b = map(int, input().split())

print(int(a | b))

6062. 비트단위로 XOR 하여 출력하기

a, b = map(int, input().split())

print(int(a ^ b))

6063.

print(max(list(map(int, input().split()))))

6064.

print(min(list(map(int, input().split()))))

6065. 정수 3개 입력받아 짝수만 출력하기

nums = list(map(int, input().split()))

for n in nums:
    if not n % 2:
        print(n)

lambda로 한줄풀이

print(" ".join(list(map(lambda x:x if not (int(x) % 2) else "", input().split()))).strip())

6066.

nums = list(map(int, input().split()))

for n in nums:
    print("odd" if n % 2 else "even")

lambda로 한줄풀이

print("".join(list(map(lambda x:"odd\n" if int(x) % 2 else "even\n", input().split()))))

6067.

n = int(input())

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

6068.

n = int(input())

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

6069.

c = input()

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

딕셔너리로 풀기

dic = {"A":"best!!!", "B":"good!!", "C":"run!", "D":"slowly~"}
c = input()

print(dic[c] if c in dic else "what?")

6070.

n = int(input())

if n in (12, 1, 2):
    print("winter")
elif n in (3, 4, 5):
    print("spring")
elif n in (6, 7, 8):
    print("summer")
else:
    print("fall")

6071.

while(True):
    n = int(input())
    if not n:
        break
    print(n)

6072.

n = int(input())

while n > 0:
    print(n)
    n -= 1

6073.

n = int(input())

while n > 0:
    n -= 1
    print(n)

6074.

n = int(ord(input()))

for i in range(97, n+1):
    print(chr(i), end=" ")

6075.

n = int(input())

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

6076.

n = int(input())

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

6077.

n = int(input())
sum = 0

for i in range(2, n+1):
    if not i % 2:
        sum += i
print(sum)

6078.

while(True):
    c = input()
    if c == "q":
        print(c)
        break
    print(c)

6079.

n = int(input())
sum = 0
k = 1

while sum < n:
    sum += k
    k += 1
    
print(k-1)

6080. 주사위 2개 던지기 (itertools)

from itertools import product

a, b = map(int, input().split())

array = [list(range(1, a+1)), list(range(1, b+1))]

for k in list(product(*array)):
    print(k[0], k[1])

6081. 16진수 구구단 출력하기

n = int(input(), 16)

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

6082. 3 6 9 게임의 왕이 되자

n = list(map(str, range(1, int(input())+1)))

for i in n:
    if "3" in i or "6" in i or "9" in i:
        n[n.index(i)] = "X"
        
print(" ".join(n))

한줄 풀이

print(" ".join(["X" if "3" in i or "6" in i or "9" in i else i for i in list(map(str, range(1, int(input())+1)))]))

6083. 빛 섞어 색 만들기 itertools

from itertools import product

r, g, b = map(int, input().split())
arr = [list(range(r)), list(range(g)), list(range(b))]
combi = list(product(*arr))

for k in combi:
    print(k[0], k[1], k[2])
print(len(combi))

6084. 소리 파일 저장용량 계산하기

  8 bit(비트)           = 1byte(바이트)       # 8bit=1Byte

1024 Byte(210 byte) = 1KB(킬로 바이트) # 1024Byte=1KB
1024 KB(210 KB) = 1MB(메가 바이트)
1024 MB(210 MB) = 1GB(기가 바이트)
1024 GB(210 GB) = 1TB(테라 바이트)

h, b, c, s = map(int, input().split())

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

6085. 그림 파일 저장용량 계산하기

w, h, b = map(int, input().split())

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

6086. 거기까지! 이제 그만~

n = int(input())

sum = 0
for i in range(1, n+1):
    if sum >= n:
        break
    sum += i
    
print(sum)

6087.

n = int(input())

for k in range(1, n+1):
    if k % 3:
        print(k, end=" ")

6088. 등차 수열 합

a, d, n = map(int, input().split())

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

6089. 등비 수열

a, r, n = map(int, input().split())

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

6090. 수 나열하기3

a, m, d, n = map(int, input().split())

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

6091. 함께 문제 푸는 날 (최소 공배수)

a, b, c = map(int, input().split())

d = 1

while d%a or d%b or d%c:
    d += 1
    
print(d)

6092.

n = int(input())
ranN = list(map(int, input().split()))

answer = [0 for _ in range(23)]

for k in ranN:
    answer[k-1] += 1

print(" ".join(list(map(str, answer))))

6093. 배열 뒤집기

n = int(input())
ranN = input().split()

for i in range(n-1, -1, -1):
    print(ranN[i], end=" ")

reversed (뒤집힌 배열을 반환)

n = int(input())
ranN = input().split()

print(" ".join(list(reversed(ranN))))

6094.

n = int(input())
ranN = list(map(int, input().split()))

print(min(ranN))

6095.

n = int(input())

answer = [["0" for _ in range(19)] for _ in range(19)]

for i in range(n):
    x, y = map(int, input().split())
    answer[x-1][y-1] = "1"
    
for k in answer:
    print(" ".join(k))

6096. 바둑알 십자 뒤집기

answer = []
for _ in range(19):
    arr = input().split()
    answer.append(arr)

n = int(input())

for _ in range(n):
    x, y = map(int, input().split())
    for k in range(19):
        answer[k][y-1] = str(int(not int(answer[k][y-1])))
        answer[x-1][k] = str(int(not int(answer[x-1][k])))
        
for k in answer:
    print(" ".join(k))

6097. 설탕과자 뽑기

a, b = map(int, input().split())
matrix = [["0" for _ in range(b)] for _ in range(a)]

for _ in range(int(input())):
    l, d, x, y = map(int, input().split())
    if d == 0:
        for i in range(y-1, y+l-1):
            matrix[x-1][i] = "1"
    else:
        for i in range(x-1, x+l-1):
            matrix[i][y-1] = "1"

for k in matrix:
    print(" ".join(k))

6098. 성실한 개미

matrix = []
for _ in range(10):
    matrix.append(input().split())
    
x, y = 1, 1
while x <= 8 and y <= 8:
    if matrix[x][y] == "2":
        matrix[x][y] = "9"
        break
    matrix[x][y] = "9"
    if matrix[x][y+1] == "1" and matrix[x+1][y] == "1":
        break
    elif matrix[x][y+1] == "1":
        x += 1
    else:
        y += 1

for k in matrix:
    print(" ".join(k))
profile
계정 이전했습니다 https://velog.io/@rjw0907/posts

1개의 댓글

comment-user-thumbnail
2021년 12월 29일

친절한 설명 감사합니다~

답글 달기