1. 정수
1-1. 최대, 최소

ans = "어떤값"
for num in arr:
if ans > num:
ans = num
print(ans)
ans = 999999
import sys
ans = sys.maxsize
print(ans)

2. 진법
2-1. 10진수 => 2, 8, 16 진수로 변환
- 사용 시 슬라이싱을 활용해서 앞에 진법 표현하는 기호는 빼는 방식으로 활용하자
num = 42
print(num)
print(bin(num))
print(oct(num))
print(hex(num))

2-2. 2, 8, 16진수 => 10진수 변환 : int()함수 활용법
int('0b101010',2)
int('0o52',8)
int('0x2a',16)
print(int('444',5))
print(int('555',6))

2-3. 진법 활용 연산 예제 - 백준
""" 백준 2729 - 내가품 """
result = []
for _ in range(int(input())):
a, b = map(str, input().split())
temp = str(bin(int(a,2)+int(b,2)))
result.append(temp[2:])
print("\n".join(map(str,result)))

''' 백준11005 - 블로그 참고 '''
n, b = map(int, input().split())
def total(n,b):
result = []
while n > 0:
n, m = divmod(n, b)
result.insert(0, m)
digit_map = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
encoding = ''
for d in result:
encoding += digit_map[d]
return encoding
print(total(n,b))
''' 백준 2745 - 내가품'''
n, b = input().split()
print(int(n,int(b)))
- 백준 - 8진수 2진수 : 8진수가 주어졌을 때 2진수로 변환하는 프로그램
''' 백준 1212 - 내가품 '''
a = input()
print(bin(int(a,8))[2:])
- 백준 - 2진수 8진수 : 2진수가 주어졌을 때 8진수로 변환하는 프로그램
''' 백준 1373 - 내가품 '''
b = input()
print(oct(int(b,2))[2:])
3. 문자열
3-1. 문자열을 거꾸로 (리스트도 동일!!)
alph = "ABCD"
alist = [1,2,3,4]
print(alph[::-1])
print(alist[::-1])
print(alph)
print(alist)
alph = alph[::-1]
alist = alist[::-1]
print(alph)
print(alist)

''' 백준 10988 - 내가품 '''
def is_palindrome(a):
return 1 if a == a[::-1] else 0
print(is_palindrome(input()))
4. 배열(=리스트)
4-1. 1차원 또는 2차원 배열 초기화
arr = [0] * 10
print(arr)

- 두 정수가 첫째줄에 입력값으로 들어옵니다.
- 첫 번째 정수는 배열의 가로 크기를, 두 번째 정수는 배열의 세로 크기인 0으로 초기화된 배열을 만들어봅시다.
- 위의 입력값은 가로 3, 세로 5인 크기의 배열을 0으로 초기화 해야합니다.
n, m = map(int,input().split())
arr = [[0] * n for _ in range(m)]
print(arr)
- 그래프 만들기
- 입력은 그래프 형태로 줄 수도 있지만, edge형태로 준다면 graph로 변환해야 함

''' 내가 만든 '''
n, m, v = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(m)]
check = [False] * (n+1)
graph = [[] for _ in range(n+1)]
for i in range(len(arr)):
graph[arr[i][0]].append(arr[i][1])
graph[arr[i][1]].append(arr[i][0])
print(graph)

''' 다른 사람 코드 (블로그) '''
import sys
input=sys.stdin.readline
n,m,start=map(int,input().split())
visited=[False]*(n+1)
graph=[[] for _ in range(n+1)]
for _ in range(m):
a,b=map(int,input().split())
graph[a].append(b)
graph[b].append(a)
4-2. 배열(리스트)의 원소를 거꾸로
arr.reverse()
''' 백준 2588 - 내가 품 '''
a = int(input())
b = list(map(int,input()))
j = 0
result = 0
b.reverse()
for i in range(len(b)):
print(a * b[i])
result = result + ((a * b[i]) * pow(10, j))
j = j + 1
print(result)

4-3. 배열 원소 갯수
data = [1,2,9,3,2,5,7,7,2,3]
print(data.count(3))

''' 백준 2490 - 내가 푼(윷놀이) '''
result = []
for _ in range(4):
yut = list(map(int,input().split()))
result.append({1:'A', 2:'B', 3:'C', 4:'D', 0:'E'}.get(yut.count(0), "default"))
print("\n".join(result))

4-4. 원소 중복 제거 - set 사용
''' set 자료형 활용 : (중요) set은 원소의 중복이 없다. '''
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c', 'd' ]
print(set(alpha))
alpha = list(set(alpha))
print(alpha)
lst = [[1,2], [1,2], [1]]
a = list(set(map(tuple, lst)))
print(a)
print(a[0])
print(a[1])
print(list(a[1]))

4-5. 배열 정렬 - sort() : O(n)
''' 오름차순 정렬 '''
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c', 'd' ]
alpha.sort()
print(alpha)
''' 내림차순 정렬 '''
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c', 'd' ]
alpha.sort(reverse=True)
print(alpha)

''' 역으로 바꾸기랑 다른거다!! '''
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c', 'd' ]
alpha.reverse()
print(alpha)

- x0를 기준으로 정렬하고, x[0]이 같다면, x1를 기준으로 오름차순 정렬
- 내림차순 정렬을 하고싶다면, -x[0]
''' 배열의 원소가 한 개가 아닌 리스트일 경우 '''
alpha.sort(key=lambda x:(x[0], x[1]))
''' 백준 11650 '''
''' 블로그 정답 => 시간초과 판정 아님 '''
arr = []
for _ in range(int(input())):
arr.append(list(map(int, input().split())))
arr.sort(key=lambda x:(x[0], x[1]))
for e in arr:
print(str(e[0]) + " " + str(e[1]))
5. if-else문 줄이기 팁(중요)
if a>b:
res = a
else:
res = b
''' 줄이는 방법 '''
res = a if a > b else b