백준/Python 34

[백준] 27172 수 나누기 게임 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/27172 27172번: 수 나누기 게임 《보드게임컵》을 준비하다 지친 은하는 보드게임컵 참가자들을 경기장에 몰아넣고 결투를 시키는 게임 《수 나누기 게임》을 만들었습니다. 《수 나누기 게임》의 규칙은 다음과 같습니다. www.acmicpc.net 작성코드 풀이 플레이어의 수가 최대 100000 가 될 수 있기 때문에 문제에서 등장하는 결투(플레이어의 수로 다른 플레이어의 수를 나누어 나머지가 0이라면 이긴쪽에 +1, 진쪽에 -1 점 부여)를 진행하게 된다면 시간초과가 발생한다. 이를 해결하기 위해 에라토스테네스의 체의 풀이 방식을 응용한다. 에라토스테네스의 체는 소수를 찾는 방법으로 매번 계산을 하는 것이 아닌 배열을 만들고 숫자의 ..

백준/Python 2023.02.03

[백준] 27162 Yacht Dice (python 파이썬)

문제링크 :https://www.acmicpc.net/problem/27162 27162번: Yacht Dice 《Yacht Dice》는 여러 명이 플레이하는 주사위 게임입니다. 플레이어는 우선 주사위를 $5$개 굴립니다. 이후 원하는 주사위를 고정시킨 뒤, 남은 주사위를 다시 굴리는 일을 두 번 이하로 할 수 있 www.acmicpc.net 작성코드 해설 하나하나 조건별로 체크를 해주어 가장 스코어가 큰 값을 저장해주었다. 문제에서는 3개의 주사위가 주어지고 2개의 주사위를 임의로 결정하므로 이를 생각하여 최대치를 저장한다. 우선 YorN의 입력과 DICE 입력을 리스트로 받아둔다. score는 최대 스코어를 저장할 변수이고 count는 조건에 해당하는 주사위 수를 저장할 변수이다. 1~6의 경우 fo..

백준/Python 2023.01.15

[백준] 27161 크레이지 타임 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/27161 27161번: 크레이지 타임 우주 어딘가에는 시간을 셈으로써 시간이 흐르도록 만들어 주는 존재들이 있습니다. 영겁의 시간을 살아온 그들은 더 재미있게 시간을 세기 위해 시간을 세는 게임을 만들어 냈답니다. 그게 바 www.acmicpc.net 작성코드 해설 문제에 기본 법칙 하나와 특수 규칙이 세가지가 있다. 기본 법칙 1. 시작 시간은 1시이다. 다음 사람이 카드를 열때 시간은 1시간씩 더해진다. 특수 규칙 1. 시간 역행의 법칙 모래시계 카드가 펼쳐지면 시간이 거꾸로 흐른다. 모래시계 카드가 펼쳐질 때마다 시간의 흐름은 반전된다. 2. 동기화의 법칙 펼친 카드에 적힌 시각과 현재 시각이 일치하면 즉시 중앙의 판을 내려친다..

백준/Python 2023.01.15

[백준] 27160 할리갈리 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/27160 27160번: 할리갈리 한별이가 종을 쳐야 하면 YES을, 아니면 NO를 출력해주세요. www.acmicpc.net 작성코드 해설 카드 종류를 인식해서 X 리스트 에 구분해서 해당 카드의 숫자를 += 로 더하여 넣어주면 카드 합을 기록할 수 있다. 기본 벨 누르기를 NO으로 두고 모든 카드를 확인 후 합이 정확히 5일때 만 YES를 넣어주고 bell을 출력해준다.

백준/Python 2023.01.15

[백준] 27159 노 땡스! (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/27159 27159번: 노 땡스! 《노 땡스!》는 $3$부터 $35$까지의 정수가 쓰인 수 카드를 이용하여 플레이할 수 있는 보드게임입니다. 수 카드를 경매를 통해서 낙찰받으며, 최종적으로 가지고 있는 수 카드를 이용하여 다음과 www.acmicpc.net 작성코드 해설 카드는 오름차순으로 주어지기 때문에 현재 카드와 다음 카드를 비교해 값 차이가 1이 아니라면 그룹이 달라진다. 그룹별로 첫번째 수를 스코어에 더하면 되므로 그룹이 달라질 때 스코어에 더해주면 된다. 단 이렇게 되면 가장 첫번째 수는 합산되지 않으므로 따로 더해주어야 하는데 card 리스트 시작에 -1 값을 넣어주어 첫번째 수가 바로 다음 그룹으로 넘어가도록 하였다.

백준/Python 2023.01.15

[백준] 13305 주유소 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 작성코드 해설 가장 싼 기름을 최대한 많이 사용해야만 최소비용으로 도착할 수 있다 하지만 해당 기름은 도착 이후부터 사용할 수 있기 때문에 미리 list를 돌면서 탐색이 아닌 도시를 지나며 최소값 갱신을 통해 판단한다. 현재까지 도착한 도시 중 가장 싼 기름을 사용하여 다음 목적지 까지 도달하는 비용을 계산한다. 단, 이때 마지막 도시의 다음 목적지는 없으므로 dista..

백준/Python 2023.01.13

[백준] 1541 잃어버린 괄호 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 작성코드 해설 괄호, 즉 문자열의 구분을 하여 최소값을 만들어야 한다. 최소값을 만들기 위해서는 괄호를 마이너스로 시작하도록 a-(b+c) 형식으로 만들어주면 가장 작은 값을 만들 수 있다. 그러기 위하여 입력받은 값을 split()를 사용하여 - 를 기준으로 나누어 주면 위 식과 같은 형태로 괄호를 칠 수 있게 된다. 이제 괄호를 쳤으니 계산만 해주면 되는데 괄호 내부의 값들을..

백준/Python 2023.01.12

[백준] 1931 회의실 배정 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/1931 작성코드 해설 가장 많은 회의를 하기 위해서는 회의를 최대한 빨리 끝나는 회의들로 구성해야 한다. 그러기 위해 회의들을 오름차순으로 정렬 해주는데 time 리스트를 sort 해주면 첫번째 원소인 start에 대해서만 정렬 된다. 하지만 끝나는 시간이 섞여있기 때문에 두번째 원소에 대해서도 정렬 해주어야 하는데 이는 key=lambba a:a[] 식으로 원소를 지정해줄 수 있다. ※ 원소 지정은 여러개도 가능한데 예를 들어 sort(key=lambda a: (a[1], a[0])) 라면 우선 a[1] 원소에 대하여 오름차순 정렬해주고 a[1] 값이 같은 경우들의 a[0]에 대해 오름차순으로 정렬해준다. 정렬한 상태에서 순서대로 ..

백준/Python 2023.01.10

[백준] 11047 동전 0 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 작성코드 해설 조건으로 동전은 배수로서 주어진다는 것을 알게 되었으니 문제가 간단해진다. 동전 사용 갯수를 최소로 만들기 위해서는 큰 동전을 최대한 많이 사용하면 되므로 해당 금액에서 사용할 수 있는 가장 큰 동전을 사용하고 남은 금액을 다시 반복해주면 된다. 이를 코드로 작성하면 아래와 같다. 동전 입력은 오름차순으로 ..

백준/Python 2023.01.02