https://pythontutor.com/visualize.html#mode=edit
https://www.inflearn.com/course/%EC%BD%94%EB%94%A9-%EC%9D%B8%ED%84%B0%EB%B7%B0
array=[1,3,4,5,6,3,5]
array.sort()
array
[1, 3, 3, 4, 5, 5, 6]
import sys
data=sys.stdin.readline().rstrip()
print(data)
print(7, end=" ")
print(8, end=" ")
7 8
score=85
if score>=80:
pass #나중에 작성
else:
f'성적이 80점 미만이다'
f'프로그램 종료'
프로그램 종료
array=[1,2,3,4,5]
def func():
array=[2,4,6]
array.append(8)
print(array)
func()
print(array)
[2, 4, 6, 8]
[1, 2, 3, 4, 5]
array=[1,2,3,4,5]
def func():
global array
array=[2,4,6]
array.append(8)
print(array)
func()
print(array)
[2, 4, 6, 8]
[2, 4, 6, 8]
(lambda a,b: a+b)(3,7)
10
array=[('홍길동',50),('이순신',43),('아무개',74)]
print(sorted(array, key=lambda x: x[1]))
[('이순신', 43), ('홍길동', 50), ('아무개', 74)]
list1=[1,2,3,4,5]
list2=[6,7,8,9,10]
result=map(lambda a,b: a+b, list1, list2)
print(list(result))
[7, 9, 11, 13, 15]
from itertools import product
data=['A','B','C']
result=list(product(data,repeat=2)) # 2개를 뽑는 모든 순열
print(result)
print('*'*50)
from itertools import combinations_with_replacement
result=list(combinations_with_replacement(data,2)) # 2개를 뽑는 모든 조합
print(result)
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
n=1260
cnt=0
array=[500,100,50,10]
for coin in array:
cnt+=n//coin
n%=coin
print(cnt)
6
n,k=map(int,input().split())
cnt=0
quo=0 # quotient: 몫
while n>1:
quo=n//k
n=quo
cnt+=1
print(cnt)
n,k=map(int,input().split())
cnt=0
while n>1:
n//=k
cnt+=1
print(cnt)
n,k=map(int,input().split())
res=0
while 1:
# N이 K의 배수가 될때까지 빼기
t=(n//k)*k #t는 k의 배수
res+=(n-t)
n=t
# N이 k보다 작아지면 탈출
if n<k:
break
#k로 나누기 : 시간복잡도 낮춤
res+=1 #k를 나누는 연산을 추가
n//=k
# 마지막으로 남은수에 대하여 1씩 빼기
res+=(n-1) # 아직 n!=1 이므로 빼준다
print(res)
s=input()
# res=0 # 결과값은 0이나 1로 둘 수 없음
res=int(s[0])
for i in range(1,len(s)):
n=int(s[i]) # 문자열의 정수화
print(n)
if n<=1 or res<=1: #res값도 0,1일 경우 포함
res+=n
else:
res*=n
print(res)
2가지 전략 필요
- res 초기값이 0이나 1의 정수일 수 없음
- 문자열 s를 int로 바꾸기
n=int(input())
data=list(map(int, input().split()))
data.sort()
res=0 # 총 그룹의 수
cnt=0 # 현재 그룹에 포함된 모험가의 수
for i in data:
cnt+=1
if cnt>=i:
res+=1
cnt=0
print(res)
for i in range(5):
for j in range(5):
print('(',i,',',j,')', end=' ')
print()
( 0 , 0 ) ( 0 , 1 ) ( 0 , 2 ) ( 0 , 3 ) ( 0 , 4 )
( 1 , 0 ) ( 1 , 1 ) ( 1 , 2 ) ( 1 , 3 ) ( 1 , 4 )
( 2 , 0 ) ( 2 , 1 ) ( 2 , 2 ) ( 2 , 3 ) ( 2 , 4 )
( 3 , 0 ) ( 3 , 1 ) ( 3 , 2 ) ( 3 , 3 ) ( 3 , 4 )
( 4 , 0 ) ( 4 , 1 ) ( 4 , 2 ) ( 4 , 3 ) ( 4 , 4 )
# x * y matrix
# 동, 북, 서 ,남
dx=[0,-1,0,1]
dy=[1,0,-1,0]
#현재위치
x,y=2,2
for i in range(4):
nx=x+dx[i]
ny=y+dy[i]
print(nx,ny) # 다음 위치
2 3
1 2
2 1
3 2
n * n 정사각형 공간, 시작좌표는 (1,1)
LRUD: 좌우위아래
공간을 벗어나는 움직임은 무시
시간제한 2초
입력조건
- 첫째줄에 공간의 크기를 나타내는 N이 주어집니다( 1<=N<=100) # 10,000
출력조건
-첫째줄에 여행가 A가 최종적으로 도착할 지점의 좌표(X,Y)를 공백을 기준으로 구분하여 출력
입력예시
5
R R R U D D
출력예시
3 4
처음 답안 : 출력값 안 나옴
# X, Y
x,y=(1,1)
n=int(input())
s=input().split()
for i in range(len(s)):
if 1<=(x and y) <= n:
if i=='R':
y+=1
elif i=='L':
y-=1
elif i=='U':
x+=1
elif i=='D':
x-=1
else: continue
print(x,y)
# N 입력받기
n = int(input())
x, y = 1, 1
plans = input().split()
# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
move_types = ['L', 'R', 'U', 'D']
# 이동 계획을 하나씩 확인
for plan in plans:
# 이동 후 좌표 구하기
for i in range(len(move_types)):
if plan == move_types[i]:
nx = x + dx[i]
ny = y + dy[i]
print(nx,ny)
# 공간을 벗어나는 경우 무시
if nx < 1 or ny < 1 or nx > n or ny > n:
print(f'else{nx,ny}')
continue
# 공간 이내라면 이동 수행
x, y = nx, ny
print(x, y)
5
R R R U D D
1 2
1 3
1 4
0 4
else(0, 4)
2 4
3 4
3 4
h=int(input())
cnt=0
for i in range(h+1): #시간
for j in range(60): #분
for k in range(60): #초
if '3' in str(i)+str(j)+str(k):
cnt+=1
print(cnt)
# 현재 나이트 위치 입력받기
place=input()
row=int(place[1])
col=int(ord(place[0]))-int(ord('a'))+1 #ord로 숫자로 변경
#나이트가 이동할 수 있는 8방향 정의
steps=[(-2,-1),(-1,-2),(1,-2),(2,-1),(2,1),(1,2),(-1,2),(-2,1)]
# 8가지 방향에 대해 각 위치로 이동 가능한지 확인
res=0
for step in steps:
#이동하려는 위치 확인
next_r=row+step[0]
next_c=col+step[1]
if next_r>=1 and next_r<=8 and next_c>=1 and next_c<=8:
res+=1
print(res)
리스트에 저장된 알파벳을 정렬해 출력, 숫자는 합계. isalpha()
s=input()
num=0
res=[]
for i in s:
if i.isalpha():
res.append(i)
else:
num+=int(i)
# 알파벳 정렬
res.sort()
if num>0:
res.append(str(num))
print(res)
# 리스트를 문자열로 반환하여 출력
print(''.join(res))
['A', 'B', 'C', 'K', 'K', '13']
ABCKK13