[python] 백준 2161번 카드1
알고리즘/백준2021. 11. 25. 21:18[python] 백준 2161번 카드1

문제 풀이 문제에서 N=4인 경우에 버린 카드는 1 3 2가 되고 남는 카드는 4가 되어 출력 결과가 1 3 2 4가 되길래 짝수 홀수로 나누면 될 줄 알았다. 하지만 테스트 케이스 1번에서 출력 결과가 1 3 5 7 4 2 6이 되는 것에 대해서 도무지 이해가 안 되어 결국 그림을 그려 이해를 하고 어떻게 하면 풀 수 있을지를 알아냈다. 그림에서와 같이 cnt 값에 따라서의 2가지의 작업을 돌리면 되었다. 1. cnt가 홀수면 첫 번째 원소 값을 원래 리스트에서 pop 하고 다른 리스트에 append 2. cnt가 짝수면 첫 번째 원소 값을 원래 리스트에 append 하고 원래 리스트에서 첫 번째 위치에 있는 원소 값을 pop 대부분의 사람들은 데크(dequeue)로 푸셨던데 아직 본인은 쓸 줄 몰라 ..

[python] 백준 10845번 큐
알고리즘/백준2021. 11. 24. 21:36[python] 백준 10845번 큐

문제 풀이 명령어 6가지 중 push 명령어는 해당 명령어만 실행하고 출력은 없다. 테스트 케이스 입력 부분을 보면 파라미터를 2개, 1개 받는 경우가 있기 때문에 함수를 써서 하나의 인자는 받고 다른 인자는 default로 두어 해당 명령어가 들어오면 명령어 역할에 맞게 실행시켜주면 될 것 같았다. def 함수명(a, b=0): return queue는 리스트 구조를 이용하였고, 명령어를 받기 위해 빠른 입출력의 sys.stdin.readline()을 이용하였다. 그냥 입출력을 쓰면 시간 초과가 나게 된다. 또한 입력 명령어 중에 push 같은 경우 공백을 포함한 두번째 인자 값을 받아서 정수형(int)으로 만들어 줘야 하므로 split함수로 입력받았다. cmd = sys.stdin.readline()..

[python] 백준 1158번 요세푸스 문제
알고리즘/백준2021. 8. 28. 23:44[python] 백준 1158번 요세푸스 문제

문제 요약 및 풀이 입력이 7 3일 때 (1 2 3 4 5 6 7) 번까지 총 7명의 사람이 원을 이루고 있게 되고 3번째 사람을 제거하게 되는데 표로 보여주겠다. 리스트를 이용해서 풀면 되겠다 싶었다. 배열의 index값은 0번째부터 시작이니 k=3이라면 list[2]라고 생각하면 된다. K번째 사람이 제거 될때마다 리스트의 사이즈가 하나씩 줄어드는 걸 볼 수 있다. 1 2 3 4 5 6 7 [0] [1] [2] [3] [4] [5] [6] 3 1 2 4 5 6 7 [0] [1] [2] [3] [4] [5] 6 1 2 4 5 7 [0] [1] [2] [3] [4] 2 1 4 5 7 [0] [1] [2] [3] 7 1 4 5 [0] [1] [2] 5 1 4 [0] [1] 1 4 [0] 4 빨간색만을 보면..

image