코딩테스트
-
[파이썬/Python] 백준 2805번: 나무 자르기 풀이Coding Test/Baekjoon 2022. 8. 29. 14:33
문제 출처: https://www.acmicpc.net/problem/2805 풀이 방법 시간 초과를 막기 위해 효율적으로 코드를 짜야 한다. 나는 다음 세 방법을 모두 사용하였다. 1. 이진탐색 2. input 함수 대신 sys.stdin.readin 사용 3. 얻을 수 있는 나무 높이를 구할 때 불필요한 덧셈 제외 3의 경우, for문을 돌면서 나무 높이를 구할 때 기준높이 이하의 나무가 나오는 순간 반복문을 종료하면 된다. for문 없이 sum으로 계산하도록 했을 때에는 시간초과가 되었다. 코드
-
[백준/Python] 11651번: 좌표 정렬하기 2 풀이Coding Test/Baekjoon 2021. 5. 21. 13:16
출처: https://www.acmicpc.net/problem/11651 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 풀이 방법 입력받은 뒤 1순위 y, 2순위 x로 설정하여 정렬 후 print 코드
-
[백준/Python] 1427번: 소트인사이드 풀이Coding Test/Baekjoon 2021. 5. 21. 12:26
출처: https://www.acmicpc.net/problem/1427 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 풀이 방법 자릿수별로 입력받아 내림차순으로 정렬한다. 문자열->배열->정렬을 하였지만 문자열->정렬->join으로 풀어도 된다. 코드
-
[백준/Python] 2798번: 블랙잭 풀이Coding Test/Baekjoon 2021. 5. 20. 18:46
출처: https://www.acmicpc.net/problem/2798 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대..
-
[백준/Python] 2447번: 별 찍기 - 10 풀이 ★Coding Test/Baekjoon 2021. 5. 15. 20:42
내가 이 문제로 끙끙대서 스스로 실망했다... 고작 별 찍기에 무너지다니ㅠㅠ 출처: https://www.acmicpc.net/problem/2447 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1..
-
[백준/Python] 10870번: 피보나치 수 5 풀이Coding Test/Baekjoon 2021. 5. 15. 17:41
출처: https://www.acmicpc.net/problem/10870 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 풀이 방법 재귀함수..