일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 회고록
- back propagation
- DP
- 플로이드 와샬
- 문자열
- c++
- 우선 순위 큐
- 백트래킹
- 자바스크립트
- Overfitting
- 다익스트라
- 가끔은_말로
- 이분 탐색
- 가끔은 말로
- 너비 우선 탐색
- 분할 정복
- BFS
- pytorch
- 세그먼트 트리
- NEXT
- 조합론
- dropout
- lazy propagation
- 크루스칼
- 알고리즘
- tensorflow
- 2023
- dfs
- object detection
- 미래는_현재와_과거로
- Today
- Total
Doby's Lab
코드업 Python 기초 100제 정리 본문
C++을 공부했던 것처럼 CodeUp 기초 100제를 통해 Python 기본 문법을 공부했습니다.
PS를 하면서 Python을 써보고 싶다거나 다른 프로그래밍을 할 때, Python을 쓸 일이 많아질 거 같아 더 이상 미룰 수 없다고 생각했고, 지금이 최적의 타이밍이 아닌가 했습니다.
풀면서 배워두어야 할 문법들에 관련된 문제들로 정리 해두었습니다.
6005
print("\"Hello World\"")
큰 따옴표나 작은따옴표는 C++처럼 앞에 \(역슬래시)를 붙여주면 출력할 수 있습니다.
6011
n = float(input())
print(n)
파이썬에서 실수형은 float을 사용합니다. C++에서는 범위에 따라 double이나 long double을 사용할 일이 많았는데 파이썬은 없는 거 같군요.
6015
a, b = input().split()
a = int(a)
b = int(b)
print(a)
print(b)
파이썬에서 한 줄에 여러 정수를 입력받으려면 input().split()을 이용하여 입력받을 수 있습니다. 별다른 타입 변환 없이 받았기 때문에 a = int(a)를 통해 타입 변환을 해줍니다.
6016
a, b = input().split()
print(b, a)
줄 넘김 없이 출력하는 방법은 print에서 한번에 ,(콤마)를 통해 출력하는 방법이 있습니다. 공백 없이도 출력할 수 있지만 이는 다른 문제에서 나오기 때문에 넘어가겠습니다.
6018
a, b = input().split(":")
print(a, b, sep = ":")
input().split(":")는 :를 기준으로 잘라서 입력을 받겠다는 뜻입니다. 이전엔 비워뒀으니 공백이 디폴트 값이라는 것을 알 수 있습니다.
print(a, b, sep = ":")에서 sep는 separator를 뜻하고, 변수들 사이에 sep를 끼워 넣어 출력한다는 뜻입니다. 이전에도 비워두고 출력했을 때, 공백으로 구분되었으니 디폴트 값이 공백이었다는 것을 알 수 있습니다.
6022
s = input()
print(s[0:2], s[2:4], s[4:6])
[a:b]란 a에서 b - 1까지를 뜻합니다. (물론 사이에 공백은 없습니다.)
6027
n = int(input())
print('%x' %n)
10진수를 입력받아 16진수(소문자)를 출력할 땐 '%x'를 활용하여 출력할 수 있습니다. %x뒤엔 어떤 변수를 뜻하는지 알려주기 위해 %n을 적어둡니다.
대문자일 때는 '%X'로 적으면 되겠습니다.
6029
n = input()
n = int(n, 16)
print('%o' %n)
입력에서 몇 진수로 입력받거나 int형 변환을 할 때, 진수로 변환이 가능합니다. int형 변환에서 (바꾸는 수, 몇 진수)의 형태로 작성해주면 됩니다.
6030
n = ord(input())
print(n)
입력받아서 유니코드(10진수)로 변환하는 함수는 ord()입니다.
6031
c = int(input())
print(chr(c))
10진수를 입력받아 chr()를 통해 유니코드로 변환해줄 수 있습니다.
6036
w, n = input().split()
print(w * int(n))
정수*문자열 or 문자열*정수는 문자열을 정수번 반복했다는 뜻입니다.
6042
a = float(input())
print(format(a, '.2f'))
소수점을 몇 자리까지 정해서 출력하는 방법은 format함수를 사용하면 됩니다. .2f는 3번째 자리에서 반올림하여 2번째 자리까지 나타내겠다는 뜻입니다.
6052
n = int(input())
print(bool(n))
bool(n)은 n이라는 수가 True인지 False인지 판단하는 함수입니다. 0이 아니면 True, 0이면 False가 반환됩니다.
6053
n = bool(int(input()))
print(not n)
not 연산은 해당하는 값이 True라면 False, False라면 True를 반환합니다. 값을 not 연산시키는 게 아닌 논리 값을 돌려줍니다.
6056
a, b = input().split()
a = int(a)
b = int(b)
print(bool(a) ^ bool(b))
파이썬에서 XOR은 ^기호를 사용합니다.
물론 논리 값이 아닌 숫자에도 사용 가능합니다.
6059
n = int(input())
print(~n)
not과 ~(tilde)를 가끔 헷갈리기도 합니다. not은 논리 연산자 ~은 bitwise 연산자라고 생각하면 쉽습니다.
6063
a, b = input().split()
a = int(a)
b = int(b)
c = int(a if (a >= b) else b)
print(c)
Python에서 Ternary Operator를 나타내는 방법입니다.
=>> (True일 때 value) if (조건식) else (False일 때 value)
6074
c = ord(input())
t = ord('a')
while t <= c:
print(chr(t), end = ' ')
t += 1
앞서 다룬 개념이지만 이를 응용한 문제이기에 가져와봤습니다.
입력받은 값을 유니코드 정수 값으로 바꾸고, 정수 값보다 크거나 작은 값들을 모두 유니코드로 바꾸어(chr()) 출력합니다.
6081
n = int(input(), 16)
for i in range (1, 16):
print('%X'%n, '*%X'%i, '=%X'%(n * i), sep = '')
진수 입력 방법이나 출력 방법도 잊지 않기에 좋은 문제였습니다.
6093
n = int(input())
li = list(map(int, input().split()))
for i in range(n - 1, -1, -1):
print(li[i], end = ' ')
range(시작값, 끝값, 증감값)에 해당하는 parameter를 알고, range는 [시작, 끝) 임을 안다면 반대로 출력할 수도 있다는 걸 알게 됩니다.
6095
d = []
for i in range(0, 20):
d.append([]) # 리스트 안에 다른 리스트 추가
for j in range(0, 20):
d[i].append(0)
n = int(input())
for i in range(0, n):
x, y = input().split()
x = int(x)
y = int(y)
d[x][y] = 1
for i in range(1, 20):
for j in range(1, 20):
print(d[i][j], end = ' ')
print(end = '\n')
Python에서 2차원 배열을 선언하는 방법이 있습니다. 위와 같이 반복문을 통해 append를 사용하여 선언하는 방법이 있고, 아래와 같이 문법을 활용하여 선언하는 방법도 있습니다.
#declaration
d = [[0 for j in range(0, 20)] for i in range(0, 20)]
#print
for i in range(0, 20):
for j in range(0, 20):
print(d[i][j], end = ' ')
print(end = '\n')
확실히 한 줄로 짜는 게 더 깔끔합니다. 그리고, append 메서드는 C++ vector의 push_back과도 비슷하게 느껴집니다.
끝
간단하게나마 문법을 배웠지만 PS를 하면서 필요한 문법, 여러 패키지의 사용(numpy, pandas, matplotlib 등)과 같은 여러 가지 상황에서 더 공부를 해야 합니다.
'Code about AI > Python' 카테고리의 다른 글
백준 23572번: 승택이의 은밀한 비밀번호 (Python) (0) | 2022.07.24 |
---|---|
Python, Adj List, Global Variable, Recursive call (0) | 2022.07.07 |
[파이썬] 백준 1350번: 진짜 공간, 리스트(List) (0) | 2022.03.01 |
[Python] 백준 1264번: 모음의 개수, if ~ in, for 문자 in 문자열 (0) | 2022.03.01 |
[Python] 백준 5543번: 상근날드, 최솟값 함수 (0) | 2022.02.27 |