Python 202

[Python] 삼성시의 버스노선

t = int(input()) for idx in range(1, t+1): print('#{}'.format(idx), end=' ') # 버스 노선 n개 n = int(input()) # 버스 노선 받아오기 bus_lines = [] for _ in range(n): d, a = map(int, input().split()) # 출발 노선, 도착 노선 bus_lines.append(list(range(d, a+1))) # d이상, a 이하인 모든 정류장을 다니므로 해당 정류장을 리스트로 만들어 넣어준다. # 검토할 버스 정류장 p개 p = int(input()) for _ in range(p): c = int(input()) # 버스 정류장 cnt = 0 # 버스 정류장을 지나는 버스 노선의 개수 #..

[Python] 5432. 쇠막대기 자르기

t = int(input()) for idx in range(1, t+1): iron_bar = list(input())[::-1] # pop사용할건데 걍 편하게 생각하기 위해 뒤집어줌. temp_bar = 0 # 쇠막대기가 생기면 count total_bar = 0 # 총 쇠막대기 개수 b1 = iron_bar.pop() # 괄호 받아오기 while iron_bar: b2 = iron_bar.pop() # 괄호 받아오기 # 만약 받아온 괄호 두개가 '()'으로 레이저라면 if (b1, b2) == ('(', ')'): total_bar += temp_bar # 생성된 막대기들만큼 조각나니까 총 쇠막대기 개수에 더해주기 b1 = iron_bar.pop() # 레이저의 다음 괄호로 넘어간다. # 레이저 아..

[Python] 4408. 자기 방으로 돌아가기

# 방으로 들어가 def goback(s_room, e_room): # 출발 방에서 도착 방까지 해당 루트에 +1 해주기 for i in range(s_room, e_room+1): room[i] += 1 t = int(input()) for idx in range(1, t+1): n = int(input()) # 복도 만들어주기 # 방이 두 줄로 되어있으므로 복도의 길이는 200 room = [0 for _ in range(201)] for _ in range(n): # 출발 방, 끝 방 받아오기 # 인덱스 편하게 사용하기 위해 방 +1 해주었다. (예. 1번방은 //2 해주면 0이 되므로 ) # 방이 두 줄이므로 //2 해준다. s_room, e_room = map(lambda x: (int(x)+1..

[Python] 1974. 스도쿠 검증

for idx in range(1, t+1): # 스도쿠 판 받아와서 만들기 board = [] for _ in range(9): board.append(list(map(int, input().split()))) answer = 1 # 3 * 3 작은 격자 9개 만들기 square = [[[] for _ in range(3)] for _ in range(3)] for i in range(9): garo = [] # 가로 줄 sero = [] # 세로 줄 for j in range(9): # 만약 검토하려는 숫자가 이미 가로 또는 세로 도는 작은 격자 안에 있다면 0. 바로 중단 if (board[i][j] in garo) or (board[j][i] in sero) or (board[i][j] in sq..

[Python] 1961. 숫자 배열 회전

풀이 1) 행렬을 90도 돌리면서 값 구하기 # 받은 행렬 90도 돌려주는 함수 def revolution_90(matrix): # 빈 행렬 만들기 new_matrix = [[0 for _ in range(n)] for _ in range(n)] # 90도 돌리기 for i in range(n): for j in range(n): new_matrix[j][n-i-1] = matrix[i][j] # ['1', '2', '3'] 이면 '123' 의 형태로 출력해야하기 때문에 붙여서 넣어주었다. complete = [''.join(line) for line in new_matrix] return complete def revolution_90_simple(matrix): new_matrix = [] for i..

[Python] 1859. 백만장자 프로젝트

구현 코드 # 매도 def sell(benefit, today, buy): # 산거 다 팔때까지 반복 while buy: # 오늘 포인트에서 샀던거 차이 만큼 더해주기 benefit += (today - buy.pop()) return benefit t = int(input()) for idx in range(1, t+1): n = int(input()) # pop 사용할거기 때문에 받아온 매매가들을 뒤집어 준다. deal = list(map(int, input().split()))[::-1] buy = [] # 매수한 리스트 benefit = 0 # 이익 max_point = max(deal) # 최고 주가 while deal: today = deal.pop() # 오늘 주가 # 오늘 매매가가 최고 주..

[Python] 9020. 골드바흐의 추측

# 에라토스테네스의 채로 소수인지 판별 해놓기 is_prime = [True for _ in range(10001)] for i in range(2, 10001): if i*i > 10000: break if not is_prime[i]: continue for j in range(i*i, 10001, i): is_prime[j] = False tc = int(input()) for _ in range(tc): N = int(input()) s = N//2 # 반으로 쪼개기 e = N//2 # 같은 수 두번 더했는데 답인 경우 if is_prime[N//2]: if s + e == N: print(s, e) else: # 포인트 두개로 한칸씩 옮겨주며 답을 찾는다. 왜냐면 중간에서 같은 차이만큼 떨어져 ..

Algorithm/Baekjoon 2021.09.14