2025/09월 첫 코딩테스트를 공부하며 배운점 기록
\ 한개는 인식이 안되서 \이 모양이 필요할 경우 \\ 두번 사용")를 모양 그대로 사용하기 위해서는 문자열을 작은따옴표(')로 둘러싸거나 \" 를 사용\n \t \\ \' \" \'" 
nums = list(map(int, input().split()))a,b,c = map(int,input().split())map 쓸필요 없이a = int(input()) 이렇게 쓰면 됨N=int(input())
a="int"
for i in range(N//4):
a="long "+ a
print(a)
while True:
A,B = map(int,input().split())
print(A+B)
if A==0 and B==0:
break
-----------------------------------
while True:
A,B = map(int,input().split())
if A==0 and B==0:
break
else:
print(A+B)
N = int(input())
a = N // 4
words = []
for _ in range(a):
words.append("long")
print(" ".join(words), "int")
join 은 중간에만 공백을 넣어주고, 끝에는 안붙임import sys
T=int(sys.stdin.readline())
for i in range(T):
a,b=map(int,sys.stdin.readline().split())
print(a+b)
sys.stdin.readline() : input()처럼 사용하는데 속도가 더 빠른것 같음N=int(input())
for i in range(1,N+1):
a = "*" * i
print(a.rjust(i))
.rjust() 는 오른쪽 정렬을 도와주는데 a의 길이가 이미 i이기 때문에 정렬효과가 없다a.rjust(N) 으로 설정한다while True:
try:
A, B = map(int, input().split())
print(A + B)
except EOFError:
break
system 관련 기능을 다루는 표준 라이브러리
입출력 제어
sys.stdin : 표준 입력(키보드, 파일 리다이렉션 등)sys.stdout : 표준 출력(print가 쓰는 곳)sys.stderr : 표준 에러 출력 (보통 에러 메시지 출력할 때 씀)map(int,input().split()) 자체를 list로 묶으면 변수명을 여러개 선언할 필요 없이 한번에 저장 가능numbers = list(map(int,input().split()))a = list.index(b) set list(set(list)) : 순서를 신경쓰지 않을경우 사용len 을 사용하면 리스트에 들어있는 요소의 개수를 알 수 있다..countprint(*리스트이름) 하면 괄호없이 값만 출력된다. num = [10, 20, 30] print(*num) = 10 20 30[0] * 5 = [0,0,0,0,0]nums = list(range(1, N+1)) ums = [0, 0, 0, 0, 0]
nums[1:4] = [7, 7, 7] or nums[1:4] = [7] * (4-1)
num_A[i-1], num_A[j-1] = num_A[j-1], num_A[i-1]숫자 = [1, 2, 3, 4, 5, 6]
숫자[1:3]=reversed(숫자[1:3])
print(숫자)
숫자 = [1, 2, 3, 4, 5, 6]
숫자[1:3]=reversed(숫자[1:3])
print(숫자) # [1, 3, 2, 4, 5, 6]
reversed() 는 리스트, 문자열, 튜플 같은 시퀀스 자료형에서 사용할 수 있다numbers = [1, 2, 3, 4, 5]
numbers.remove(2) # 1,3,4,5
numbers.pop(2) # 인덱스 2의 값을 제거 1,2,4,5
del numbers[1] # 인덱스 1의 값을 제거 1,3,4,5
num = 12345
print(str(num)[::-1]) # "54321"
print(int(str(num)[::-1])) # 54321
# 단어의 개수
a=list(map(str,input().split())) # 공백을 기준으로 입력된 단어를 저장
print(len(a)) # 리스트에 공백을 기준으로 저장했기 때문에 [apple,banana]의 개수는 2개로 측정 된다.
ord()chr()print(ord('a')) # 97
print(ord('z')) # 122
print(chr(97)) # 'a'
print(chr(122)) # 'z'
# 문자를 range의 범위로 변환(range는 숫자전용)
for i in range(ord('a'), ord('z')+1): # 97 ~ 122
print(chr(i), end=" ")
# find() 메서드 = 문자열.find(찾을값)
# 문자열에서 특정문자가 처음 나타나는 위치를 반환 / 값이 없을경우 -1 반환
-------------------------------------------------------------
# 유니코드를 사용하지 않은 방법
S=str(input())
alpha="abcdefghijklmnopqrstuvwxyz"
for i in alpha:
if i in S:
print(S.index(i),end=" ")
else:
print("-1",end=" ")
# 서로다른 형태의 입력값을 공백을 기준으로 한번에 받는 법
a,b = input().split()
a=int(a)
b=str(b)
n_dic={'ABC':2,'DEF':3,'GHI':4,'JKL':5,'MNO':6,'PQRS':7,'TUV':8,'WXYZ':9}
a='A'
for i in n_dic:
if a in i:
print(n_dic[i])
--------------------------------------------------------------------
# 사용
X=str(input())
n_dic={"ABC":2,"DEF":3,"GHI":4,"JKL":5,"MNO":6,"PQRS":7,"TUV":8,"WXYZ":9}
a=0
for i in range(len(X)): # 입력한 문자의 개수만큼 반복
for it in n_dic: # 딕셔너리의 키값을 빼옴
if X[i] in it:
a+=n_dic[it]+1
else:
pass
print(a)
S = str(input())
a=["c=","c-","dz=","d-","lj","nj","s=","z="]
for i in a:
S = S.replace(i,"0") # for문이 반복하면서 같은 값이 들어오면 0으로 바꿈
print(len(S))
N = int(input())
ans = N
for i in range(N):
s_inp=str(input())
for j in range(len(s_inp)-1):
if s_inp[j] == s_inp[j+1]:
continue
elif s_inp[j] in s_inp[j+1:]:
ans-=1
break
print(ans)
basic={"A+":4.5,"A0":4.0,"B+":3.5,"B0":3.0,"C+":2.5,"C0":2.0,"D+":1.5,"D0":1.0,"F":0.0}
a=input()
if a in basic: # 입력한 a값이 딕셔너리의 key값에 있는지 찾음
print("True")
else:
print("False")
for i in range(5) 를 역순으로 돌리기 위해서는 for i in reserved(range(5))rjust(범위),ljust(),center() : 메서드N = int(input())
Nt=2*N-1
for i in range(Nt+1):
if not i%2==0:
a="*"*i
print(a.center(Nt).rstrip())
if i==Nt:
for it in reversed(range(Nt)):
if not it%2==0:
b="*"*it
print(b.center(Nt).rstrip())
- rstrip()를 붙여서 줄 끝 공백을 없애야 백준에서 정답처리됨
-------------------------------------------------------------
N = int(input())
Nt = 2*N - 1
for i in range(1, Nt + 1, 2):
print(('*'*i).center(Nt).rstrip())
for i in range(Nt - 2, 0, -2):
print(('*'*i).center(Nt).rstrip())
li=[]
li_1=[]
for i in range(9):
num=list(map(int,input().split()))
li.append(num) # [[1,2,3]] 이런형태로 저장
li_1.append(max(num))
ma=max(li_1)
print(ma)
for i in range(9):
if ma in li[i]:
print(i+1,end=" ")
for it in range(9):
if li[i][it] == ma:
print(it+1,end=" ")
break
[[1,2,3],[4,5,6]] 여기에서 max를 구하면 [4,5,6] 이 출력
[1,2,3]에서 max를 출력하면 3 제대로 출력됨for _ in range(5):
dic1={"a":1,"b":2}
print("a" in dic1) # True
print(1 in dic1.values()) # True
N, B = map(input().split())
a=N/B
b=1
while a>B:
a=a/B 계산값을 저장하고 그 값을 다시 나눔
while (1):
a,b = map(int,input().split())
if a==0 and b == 0:
break
if a<b and b%a ==0:
print("factor")
elif a>b and a%b==0:
print("multiple")
else:
print("neither")
while True:
N = int(input())
if N == -1:
break
li = [i for i in range(1, N) if N % i == 0]
if sum(li) == N:
print(f"{N} = {' + '.join(map(str, li))}")
else:
print(f"{N} is NOT perfect.")
print(f"{N} = {' + '.join(map(str, li))}")li = [i for i in range(1, N) if N % i == 0] : 약수 리스트# 소인수 분해
N = int(input())
li = []
i = 2
while N > 1:
if N % i == 0:
li.append(i)
N //= i
else:
i += 1
print(li)
T=int(input())
li=[25,10,5,1]
for i in range(T):
a=int(input())
for it in li:
c=0
while a>=it:
a-=it
c+=1
print(c,end=" ")
print()