문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 8개의 숫자가 주어질 때 1 - 5의 숫자를 반복하면서 숫자를 감소한 후에 마지막 숫자가 0이 될 때까지 반복하는 문제이다. 문제는 `deque`를 활용하면 쉽게 풀 수 있다. 반복문을 돌면서 감소시킬 수 있는 수(코드에서는 delta라고 하였다.)를 통해 맨 앞의 숫자를 감소시키고 맨 뒤로 보낸다. 이때 `list`의 `pop(0)`와 `append`를 사용하여도 되지만 `deque`를 사용하는 이유는 `pop(0)`의 경우 시간 복잡도가 O(N)이기 때문이다. 이 문제에서는 `list`와 `deque` 어느 것을 사용하여도 상관 없지만, `po..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 0 ~ 9의 숫자가 문자열 "ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"와 같이 주어질 때 문자열 순이 아닌 숫자 순으로 정렬 후에 출력하는 문제이다. 문제를 해결하기 위해서는 딕셔너리를 활용하면 쉽게 풀 수 있다. 코드 digit_to_string = { 0: "ZRO", 1: "ONE", 2: "TWO", 3: "THR", 4: "FOR", 5: "FIV", 6: "SIX", 7: "SVN", 8: "EGT", 9: "NIN" } string_to_digit = {va..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 테이블 위에 N, S극의 성질을 뛰는 자성체가 있을 때 자기장을 가할 경우 N, S극이 만나 더 이상 움직이지 못하는 교착상태가 되는 경우를 반환하는 문제이다. 처음에 문제를 접하였을 때는 N극 S극의 영향을 모두 주어 변화시켜야 한다고 생각하였는데 다시 생각해보면, N극 S극 중 하나만 영향을 받는다고 생각하고 이동을 시키면 된다. 예를 들어 S극에 이끌리는 N극 자성체를 이동하고자 하면, 아무것도 없는 경우 이동하고 S극인 자석과 만나는 경우 `교착상태`가 된다. 코드 EMPTY, N, S = 0, 1, 2 for test_case in ran..
문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 행열의 가로 세로의 문자열을 입력된 길이만큼 split 하여 회문이 되는지 확인하고 가능한 경우를 반환하는 문제이다. 회문이 되기 위해서는 `string == string[::-1]`을 만족하면 된다. 세로 탐색을 쉽게 하기 위해 앞서 다룬 Sum 문제와 같이 행열을 전치하여 문제를 풀었다. 코드 for test_case in range(1, 11): answer = 0 length = int(input()) array = [list(input().strip()) for _ in range(8)] trans_array = list(map(list,..