Algorithm

    [programmers] 방문 길이 python

    [프로그래머스] 방문 길이 문제 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, ULURRDLLU로 명령했다면 1번 명령어부터 7번 명령어까지 다음과 같이 움직입니다. 8번 명령어부터 9번 명령어까지 다음과 같이 움직입니다. 이때, 우리는 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하려고 합니다. 예를 들어 위의 예시에서 게임 캐릭터가 움직인..

    [programmers] 다리를 지나는 트럭 python

    [프로그래머스] 다리를 지나는 트럭 문제 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 경과 시간 다리를 지난 트럭 다리를 건너는 트럭 대기 트럭 0 [] [] [7,4,5,6] 1~2 [] [7] [4,5,6] 3 [7] [4] [5..

    [SWEA] 3752. 가능한 시험 점수 python

    문제 3752. 가능한 시험 점수 풀이과정 0점부터 시작하여 해당 문제를 해결했을 때 얻을 수 있는 점수를 더해가며 result_score에 추가한다. result_score에는 중복이 허용되지 않으므로 checker를 두어 이미 추가한 점수는 추가하지 않도록 한다. checker를 두지 않아도, result_score를 SET으로 선언한 뒤 각 점수를 추가해주어도 시간초과가 발생하지 않고 통과한다! 소스코드 T = int(input()) # 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다. for test_case in range(1, T + 1): # print('#{}'.format(test_case), end=' ') t = int(input()) # test ..

    [SWEA] 1225. 암호 생성기 python

    문제 SW Expert Academy의 문제는 해당 사이트에서 확인하실 수 있습니다. 풀이과정 문제를 요약하자면, 첫번째 숫자를 뽑아 minus의 숫자만큼 뺀 뒤 숫자 리스트의 맨 뒤에 다시 집어넣는 것을 총 5번 반복합니다. (즉, minus를 1에서 5가 될 때까지 반복하고, 다시 1로 돌아옵니다.) 따라서 단순히 while문을 통해 맨 처음 것을 빼내고 minus만큼을 뺀 뒤 다시 맨 뒤로 집어넣는 과정을 반복하였고, 사이클 동안 진행할 때, number-minus가 0보다 작거나 같은 경우 0을 맨 뒤에 집어넣고, 해당 리스트를 출력해주도록 구현하였습니다. 소스코드 def logic(numbers): minus = 1 while True: number = numbers.pop(0) if numbe..