SWEA
-
[SWEA] 특이한 자석Algorithm Study/Python 2021. 10. 12. 01:47
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 처음 들어온 톱니바퀴의 이동에 따라서 주변에 있는 톱니바퀴로 어떻게 퍼져나가는지를 구현하면 된다. gears = [deque(map(int, input().split())) for _ in range(4)] 톱니바퀴는 회전을 쉽게 구현하기 위해서 deque로 생성했다. def rotate(index, d): if d == 1: gears[index].appendleft(gears[index].pop()) elif d == -1: gears[index].append(gears[index]..
-
[SWEA] 활주로 건설Algorithm Study/Python 2021. 10. 11. 14:08
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 같은 높이의 구간이 X만큼 연속되어 있는지 찾아내는 문제이다. 단순하게 구간을 계산하면서 넘어갔는데 높이가 바뀌는 경우에 count를 1로 초기화할지 0으로 초기화할지 잘 생각해야하는 문제였다. 풀이 T = int(input()) for test_case in range(1, T+1): N, X = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] answer = 0 # 가로 방향 탐색 f..
-
[SWEA] 무선 충전Algorithm Study/Python 2021. 10. 11. 02:37
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 사용자와 BC의 거리를 계산해서 충전할 수 있는지 판단하고 충전할 수 있다면 어떤 BC를 선택하는 것이 가장 많은 양을 충전할 수 있는지 계산하는 것이 핵심인 문제이다. M, A = map(int, input().split()) # 이동하는 방법 direction = [[0, 0], [-1, 0], [0, 1], [1, 0], [0, -1]] P1 = list(map(int, input().split())) p1x, p1y = 1, 1 P2 = list(map(int, input().s..
-
[SWEA] 핀볼 게임Algorithm Study/Python 2021. 10. 10. 19:12
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 모든 비어있는 공간에서 4가지 방향으로 핀볼을 움직이면서 점수를 계산하는 방식으로 문제를 해결했다. N = int(input()) + 2 board = [[5 for _ in range(N)]] + [[5] + list(map(int, input().split())) + [5] for _ in range(N - 2)] + [[5 for _ in range(N)]] 먼저 계산을 쉽게 하기위해 모든 가장자리에 5번 블록을 이용하여 벽을 넣었다. 벽이 없으면 범위 밖으로 나가서 방향이 바뀌는..
-
[SWEA] 원자 소멸 시뮬레이션Algorithm Study/Python 2021. 10. 8. 00:54
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 위 그림처럼 원자들이 이동하면서 충돌 소멸하는 시뮬레이션을 구현하는데 좌표값이 -1000 ~ 1000이고 원자들이 충돌하는 시간이 1초일 때, 0.5초일 때가 존재해 해당 부분을 고려해야하는 문제다. 풀이 메모리 초과로 인한 런타임 오류에 대한 문제를 찾지 못해서 많이 고생했다. data = popleft() 로 받아서 data[0], data[1]... 으로 접근하여 수정 => append(data) data1, data2, data3 = popleft()로 받아서 접근 후 수정 => ap..
-
[SWEA] 보물상자 비밀번호Algorithm Study/Python 2021. 10. 5. 23:28
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 위 그림처럼 4가지로 나눈 뒤 1칸씩 회전시키며 나올 수 있는 문자열을 구하면 된다. 다음과 같은 기능이 필요하다. 1. 문자열 회전 2. 회전된 배열 나눈 후 저장, 중복 체크 3. 정렬 4. 16진수 -> 10진수 풀이 password = deque(password) password.appendleft(password.pop()) password = list(password) 문자열 회전은 deque를 이용하여 구현하였다. 마지막 값을 pop한 뒤 맨 앞에 append하면 된다. 이동한 ..
-
[SWEA] 11688, 11689 Calkin-Wilf tree 1, 2Algorithm Study/Python 2021. 4. 27. 19:40
11688 Calkin-Wilf tree 1 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXgZSOn6ApIDFASW SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 11689 Calkin-Wilf tree 2 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXgZVRZKAtIDFASW SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Calkin-Wilf tree..