PS/Baekjoon Online Judge 596

[백준 18330] Petrol [Python]

풀이 매달 60리터의 연료를 리터당 1500원에 구매할 수 있다. 이번 달에 구매할 연료의 양과, 이월되어 싸게 구매할 수 있는 양이 주어진다. 구매할 양과 이월된 양 + 60리터의 대소를 비교해 쉽게 계산할 수 있다. 소스코드 소스코드 보기 출처 18330번: Petrol The input consists of two lines. The first line contains an integer n (0 ⩽ n ⩽ 200), specifying the amount of petrol that will be used in the next month. The second line contains an integer k (0 ⩽ k ⩽ 360), showing the quota left in Mahya’s fue..

[백준18198] Basketball One-on-One [Python]

풀이 Alice 와 Barbara가 번걸아가면서 진행한 농구게임에 대한 정보가 주어진다. 중간에 게임이 끝나는 경우는 없기 때문에, 양쪽의 점수를 모두 다 더해준 후 최종점수를 기준으로 누가 이겼는지 출력해주면 된다. 소스코드 소스코드 보기 출처 18198번: Basketball One-on-One The input consists of a single line with no more than 200 characters: the record of one game. The record consists of single letters (either A or B) alternating with single numbers (either 1 or 2), and includes no spaces or other e..

[백준 17874] Piece of Cake! [Python]

풀이 정수 n, h, v 입력받고, 길이가 n인 정사각형 케이크에서 각각 가로/세로로 h와 v에서 케이크를 잘라 4등분 할 때, 가장 부피가 큰 케이크의 부피를 풀력해주면 된다. 참고로 케이크의 높이는 4 이다. 가로/세로가 최댓값인 경우를 계산해주자. 소스코드 소스코드 보기 출처 17874번: Piece of Cake! The input consists of a single line containing three integers n (2 ≤ n ≤ 10 000), the length of the sides of the square cake in centimeters, h (0 < h < n), the distance of the horizontal cut from the top edge of the c..

[백준 9465] 스티커 [Python]

풀이 스티커를 사용할 때 변을 공유하는 스티커는 사용할 수 없다는 조건이 있다. 따라서, 스티커를 최대한 많이 사용하고자 한다면 대각선으로 진행하며 사용할 때 가장 많은 스티커를 사용할 수 있다. 총 5개의 스티커를 고를 수 있다. 하지만, 이러한 방식이 항상 스티커 점수들의 최댓값임을 보장하지 않는다. 문제에서 주어진 경우를 살펴보자. 50 - 50 - 100 - 60 으로 총 4개의 스티커를 사용했지만, 스티커 점수들의 합은 260으로 이전에 선택한 경우보다 큰 점수를 가진다. 따라서, 각 스티커 영역마다 가질 수 있는 최댓값을 기록할 때 아래 그림과 같은 선택지를 고려해야 한다. 먼저, 단순하게 대각선으로 선택한 경우다. 주황색은 선택하지 못하는 영역, 초록색은 지금 선택한 영역, 파란색은 선택할 ..

[백준 17863] FYI [Python]

풀이 입력받은 전화번호의 prefix number가 555이면 "YES"를, 아니면 "NO"를 출력하면 되는 문제이다. 소스코드 소스코드 보기 출처 17863번: FYI In the United States of America, telephone numbers within an area code consist of 7 digits: the prefix number is the first 3 digits and the line number is the last 4 digits. Traditionally, the 555 prefix number has been used to provide directory informatio www.acmicpc.net

[백준 11054] 가장 긴 바이토닉 부분 수열 [Python]

풀이 LIS문제의 원리를 잘 다룬 문제이다. 기존에 O(N^2) 방식으로 LIS를 구할 때, 비연속 LIS 길이를 찾을 수 있었다. [백준 11053] 가장 긴 증가하는 부분 수열 [Python] 풀이 LIS (Longest Increasing Subsequence)는 최장 증가 부분 수열로, N개의 원소에 대해 요소를 골라 만든 부분 수열을 만들 때 각 원소가 이전 요소보다 큰 원소로 이루어진 부분 수열을 의미한다. 즉, 가 kyr-db.tistory.com LDS를 찾을 때도 마찬가지로 같은 방식을 사용했다. [백준 11722] 가장 긴 감소하는 부분 수열 [Python] 풀이 일전에 풀었던 LIS문제에서 사용한 방법을 응용해 풀이할 수 있다. [백준 11053] 가장 긴 증가하는 부분 수열 [Pyt..

[백준 11722] 가장 긴 감소하는 부분 수열 [Python]

풀이 일전에 풀었던 LIS문제에서 사용한 방법을 응용해 풀이할 수 있다. [백준 11053] 가장 긴 증가하는 부분 수열 [Python] 풀이 LIS (Longest Increasing Subsequence)는 최장 증가 부분 수열로, N개의 원소에 대해 요소를 골라 만든 부분 수열을 만들 때 각 원소가 이전 요소보다 큰 원소로 이루어진 부분 수열을 의미한다. 즉, 가 kyr-db.tistory.com LDS (Longest Decreasing Subsequence) 라고 하더라도, 결국은 LIS와 동일하게 요소간의 차이가 항상 커지거나 작아지는 비연속 부분 수열을 찾으면 되기 때문이다. 다만 주의할 점이 있는데, LIS의 길이를 구할 때 처럼 1번 요소부터 N번 요소 방향으로 탐색을 진행하면 기록되는 ..