* 본 포스팅은 파이썬의 기초를 배우며 코딩테스트를 준비할 겸 코드업의 기초 100제 문제를 풀어보았고,
후기이자 새로 접한 문법을 기록하기 위하여 내용을 포스팅한다.
문제집 / Python 기초 100제
codeup.kr
a = input()
n = int(a, 16)
print('%o'% n)
▲ 16진수를 입력받아 8진수로 출력
a = ord(input())
print(a)
▲ 유니코드를 10진수로 출력
a = int(input())
print(chr(a))
▲ 10진수를 입력받아 유니코드로 출력
a = float(input())
print(format(a, ".2f"))
▲ 실수 1개를 입력받아 소숫점 이하 두 번째 자리까지의 정확도로 반올림한 값을 출력
a = int(input())
print(a<<1)
▲ 2배 곱한 정수를 출력
n = 10
print(n<<1) #10을 2배 한 값인 20 이 출력된다.
print(n>>1) #10을 반으로 나눈 값인 5 가 출력된다.
print(n<<2) #10을 4배 한 값인 40 이 출력된다.
print(n>>2) #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.
a, b = map(int, input().split())
print(a if (a>b) else b)
▲ 두 정수 중 큰 값을 10진수로 출력
a, b, c = map(int, input().split())
print((a if a<b else b) if((a if a<b else b) < c) else c)
▲ 가장 작은 값을 출력
n = int(input(), 16)
for i in range(1, 16):
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')
▲ 입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력, 계산 결과도 16진수로 출력
🤣 문제를 풀다가 등차수열 등비수열에 관한 문제가 나왔다...
컴퓨터를 상대로 하나하나 계산하면 그만이었지만 나는 일반항을 직접 구하기 위하여 노력하였다... 풀이를 보고는 허탈함을 느끼는 시간이었다...
a, b, c = map(int, input().split())
print(b*c-(b-a))
▲ 시작 값(a), 등차의 값(d), 몇 번째 수 인지를 의미하는 정수(n)가 공백을 두고 입력(모두 0 ~ 100) n값 구하기
(내가 푼 문제의 정답)
a,d,n=input().split()
a=int(a)
d=int(d)
n=int(n)
s=a
for i in range(2, n+1):
s+=d
print(s)
(해설의 정답)
a, b, c = map(int, input().split())
print(b**(c-1)*a)
▲ 시작 값(a), 등비의 값(r), 몇 번째 인지를 나타내는 정수(n)가 공백을 두고 입력(모두 0 ~ 10) n값 구하기
(내가 푼 문제의 정답)
a, r, n = input().split()
a = int(a)
r = int(r)
n = int(n)
for i in range(1, n) :
a = a*r
print(a)
(해설의 정답)
d = [[0 for j in range(20)] for i in range(20)]
n = int(input())
for i in range(n) :
x, y = input().split()
d[int(x)][int(y)] = 1
for i in range(1,20):
for j in range(1, 20):
print(d[i][j], end=" ")
print()
▲ 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력
둘째 줄 부터 n+1 번째 줄까지 흰 돌을 놓을 좌표(x, y)가 n줄 입력
n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 똑같은 좌표는 입력되지 않는다.
흰 돌이 올려진 바둑판의 상황을 출력
흰 돌이 있는 위치는 1, 없는 곳은 0으로 출력
d = []
for _ in range(10):
a = input().split()
d.append(a)
for i in range(10):
for j in range(10):
d[i][j] = int(d[i][j])
x, y = 2, 2
while True:
d[x-1][y-1] = 9
y += 1
if d[x-1][y-1] == 1:
y -= 1
x += 1
if d[x-1][y-1] == 1:
break
elif d[x-1][y-1] == 2:
d[x-1][y-1] = 9
break
elif d[x-1][y-1] == 2:
d[x-1][y-1] = 9
break
for i in range(10):
for j in range(10):
print(d[i][j], end=" ")
print()
▲ 미로 상자에 넣은 개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지 오른쪽 또는 아래쪽으로만 움직인다.
미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고, 먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자.
단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우에는 더 이상 이동하지 않고 그곳에 머무른다고 가정
미로 상자의 테두리는 모두 벽으로 되어 있으며, 개미집은 반드시 (2, 2)에 존재하기 때문에 개미는 (2, 2)에서 출발한다.
결론
한 문제 한 문제 풀어가는 게 재밌었고, 새로운 개념을 알게 되는 계기도 되었다. 기초 100제이다 보니 여기서 그치지 말고 더 어려운 문제를 풀어보도록 노력해야겠다.
'알고리즘' 카테고리의 다른 글
[알고리즘] 코딩 테스트에서 자주 출제되는 기타 알고리즘 (0) | 2023.02.23 |
---|---|
[알고리즘] 그래프 이론 (신장 트리, 위상 정렬) (0) | 2023.02.22 |
[알고리즘] 그래프 이론 (서로소 집합) (0) | 2023.02.22 |
[알고리즘] 최단 경로 알고리즘 (2) (0) | 2023.02.17 |
[알고리즘] 최단 경로 알고리즘 (1) (2) | 2023.02.16 |
댓글