분류 전체보기
-
[백준] 3151 합이 0 with PythonPS 2022. 6. 1. 01:22
📌 BOJ 3151 합이 0 💡 조건 1 ≤ N ≤ 10000 -10000 ≤ Ai ≤ 10000 대회는 정확히 3명으로 구성된 팀만 참가가 가능하다. 코딩 실력이 좋으면 팀워크가 떨어지고, 팀워크가 좋을수록 코딩 실력이 떨어진다. 그리고 출전하고자 하는 대회는 코딩 실력과 팀워크 모두가 중요하다. 세 팀원의 코딩 실력의 합이 0이 되는 팀을 만들고자 한다. 대회에 출전할 수 있는 팀을 얼마나 많이 만들 수 있는지를 계산하여라. N명의 학생들의 코딩 실력 Ai가 -10000부터 10000사이의 정수로 주어질 때, 합이 0이 되는 3인조를 만들 수 있는 경우의 수를 구하는 문제. 이분 탐색, 투 포인터 유형의 문제 🖥 소스 코드 from sys import stdin # 이분탐색 n = int(stdin...
-
[백준] 2637 장난감 조립 with PythonPS 2022. 6. 1. 00:37
📌 BOJ 2637 장난감 조립 💡 조건 우리는 어떤 장난감을 여러 가지 부품으로 조립하여 만들려고 한다. 이 장난감을 만드는데는 기본 부품과 그 기본 부품으로 조립하여 만든 중간 부품이 사용된다. 기본 부품은 다른 부품을 사용하여 조립될 수 없는 부품이다. 중간 부품은 또 다른 중간 부품이나 기본 부품을 이용하여 만들어지는 부품이다. 어떤 장난감 완제품과 그에 필요한 부품들 사이의 관계가 주어져 있을 때 하나의 장난감 완제품을 조립하기 위해 필요한 기본 부품의 종류별 개수를 계산하는 문제. 자연수 N(3 ≤ N ≤ 100), 1부터 N-1까지는 기본 부품이나 중간 부품의 번호를 나타내고, N은 완제품의 번호를 나타낸다. 자연수 M(3 ≤ M ≤ 100)이 주어지고, 그 다음 M개의 줄에는 어떤 부품을 ..
-
[백준] 2342 Dance Dance Revolution with PythonPS 2022. 5. 20. 20:50
📌 BOJ 2342 Dance Dance Revolution 💡 조건 편의상 중점을 0, 위를 1, 왼쪽을 2, 아래를 3, 오른쪽을 4라고 정하자. 처음에 게이머는 두 발을 중앙에 모으고 있다.(그림에서 0의 위치) 그리고 게임이 시작하면, 지시에 따라 왼쪽 또는 오른쪽 발을 움직인다. 하지만 그의 두 발이 동시에 움직이지는 않는다. 두 발이 같은 지점에 있는 것이 허락되지 않는다. 한 발이 1의 위치에 있고, 다른 한 발이 3의 위치에 있을 때, 3을 연속으로 눌러야 한다면, 3의 위치에 있는 발로 반복해야 눌러야 한다. 발을 이동할 때 힘을 사용하게 된다. 중앙에 있던 발이 다른 지점으로 움직일 때, 2의 힘을 사용하게 된다. 다른 지점에서 인접한 지점으로 움직일 때는 3의 힘을 사용하게 된다. 반..
-
[백준] 18291 비요뜨의 징검다리 건너기 with PythonPS 2022. 5. 20. 20:25
📌 BOJ 18291 비요뜨의 징검다리 건너기 💡 조건 징검다리는 비요뜨가 있는 방향에서부터 반대 방향까지 차례로 1번, 2번, ..., N번의 번호를 가지고 있다. 비요뜨는 1번 징검다리 위에 올라갔다. 그리고 아래 두 가지 규칙을 지키며 징검다리를 건너려고 한다. 1 ≤ X ≤ N 인 임의의 정수 X에 대해, 현재 있는 징검다리의 번호를 i번이라고 할 때 i+X번 징검다리로 뛸 수 있다. N번째 징검다리를 지나쳐선 안 되고, 정확히 도착해야 한다 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. (1 ≤ T ≤ 1000) 각 테스트 케이스는 한 줄로 구성되며, 징검다리의 개수를 의미하는 N이 주어진다. (1 ≤ N ≤ 109) 각 테스트 케이스에 대해, 한 줄에 하나씩 규칙을 만족하면서 징검다리를 건..
-
[백준] 17204 죽음의 게임 with PythonPS 2022. 5. 19. 01:04
📌 BOJ 17204 죽음의 게임 💡 조건 게임에 참여하는 N명의 사람들은 원탁에 둘러앉게 된다. N(3 ≤ N ≤ 150) 게임을 시작하는 사람은 0번, 그 오른쪽 사람은 1번, 그 오른쪽은 2번, N-1번의 오른쪽 사람은 다시 0번이 된다. 게임 참여자들간에 지목을 완료한 상태가 주어질때, 보성이가 벌주를 마시기 위해 록 하자. 영기가 불러야 하는 가장 작은 양의 정수 M을 보성이 몰래 귀띔해 주도록 하자. 보성이의 번호 K(1 ≤ K ≤ N - 1) 김영기는 게임을 제안하였기에 자연스럽게 0번이 된다. N줄에 걸쳐 i(0 ≤ i ≤ N - 1)번 사람이 지목하는 사람의 번호 ai(0 ≤ ai ≤ N - 1)가 주어진다. 자기 자신을 지목하는 경우도 존재할 수 있다. 영기가 말해야 하는 가장 작은 양..
-
[백준] 22252 정보 상인 호석 with PythonPS 2022. 5. 18. 02:26
📌 BOJ 22252 정보 상인 호석 💡 조건 관찰하면서 얻은 정보는 총 $Q$ 개이다. 각 정보는 다음의 2가지 중 하나이다. 1 Name k C_1, C_2, ..., C_k : 이름이 [Name]인 고릴라가 k 개의 정보를 얻었으며, 각 가치는 C_1 부터 C_k 이다. 2 Name b : 호석이가 이름이 [Name]인 고릴라에게 b 개의 정보를 구매한다. 이때 고릴라가 가진 정보들 중 가장 비싼 b 개를 구매하며, 고릴라가 가진 정보가 b개 이하이면 가진 모든 정보를 구매한다. 고릴라들이 정보를 얻는 사건과 호석이가 거래하는 정보가 시간순으로 주어진다. 첫 번째 줄에는 쿼리의 개수 Q가 주어진다. Q 개의 줄에 걸쳐서 각 줄에 쿼리가 주어진다. 쿼리는 1이나 2로 시작한다. 1로 시작하는 경우에는..
-
[백준] 20444 색종이와 가위 with PythonPS 2022. 5. 18. 02:13
📌 BOJ 20444 색종이와 가위 💡 조건 색종이를 자를 때는 다음과 같은 규칙을 따른다. 색종이는 직사각형이며, 색종이를 자를 때는 한 변에 평행하게 자른다. 자르기 시작했으면, 경로 상의 모든 색종이를 자를 때까지 멈추지 않는다. 이미 자른 곳을 또 자를 수 없다. 하나의 색종이를 정확히 n번의 가위질로 k개의 색종이 조각으로 만들 수 있는지 궁금해졌다. 정수 n, k가 주어진다. (1 ≤ n ≤ 231-1, 1 ≤ k ≤ 263-1) n번의 가위질로 k개의 색종이 조각을 만들 수 있다면 YES, 아니라면 NO를 출력한다. 이분 탐색 유형의 문제 🖥 소스 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) def f(x..
-
[백준] 20440 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 with PythonPS 2022. 5. 17. 01:23
📌 BOJ 20440 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 💡 조건 어떤 모기가 방에 언제 입장했고 언제 퇴장했는지를 기록할 수 있다. 방에 출입한 모기의 마릿수 N(1 ≤ N ≤ 1,000,000) N개의 줄에 모기의 입장 시각 TE과 퇴장 시각 TX이 주어진다. (0 ≤ TE < TX ≤ 2,100,000,000) 모기는 [TE, Tx)동안 존재한다. 첫째 줄에 지동이 방에 모기가 가장 많이 있는 시간대의 모기 마릿수를 출력한다. 방에 모기가 가장 많이 있는 시간대의 연속 구간 전체를 [TEm, TXm)이라고 할 때, 둘째 줄에 TEm, TXm을 공백으로 구분하여 출력한다. 단, 여러 가지 방법이 있으면 가장 빠른 시작 시각을 기준으로 출력한다. 모기들의 방 입장, 퇴장..
-
[백준] 20436 ZOAC 3 with PythonPS 2022. 5. 17. 00:52
📌 BOJ 20436 ZOAC 3 💡 조건 독수리 타법이란 양 손의 검지손가락만을 이용해 타자를 치는 타법이다. 성우는 한글 자음 쪽 자판은 왼손 검지손가락으로 입력하고, 한글 모음 쪽 자판은 오른손 검지손가락으로 입력한다. a의 좌표가 (x1, y1)이고, b의 좌표가 (x2, y2)일 때, a에 위치한 성우의 손가락이 b로 이동하는 데에는 a와 b의 택시 거리 |x1-x2|+|y1-y2| 만큼의 시간이 걸린다. 각 키를 누르는 데에는 1의 시간이 걸린다. 성우는 두 손을 동시에 움직일 수 없다. 성우가 사용하는 키보드는 쿼티식 키보드이며, 아래 그림처럼 생겼다. 첫 번째 줄에는 두 알파벳 소문자 sL, sR이 주어진다. sL, sR은 각각 왼손 검지손가락, 오른손 검지손가락의 처음 위치이다. 그 다음..
-
[백준] 20114 미아 노트 with PythonPS 2022. 5. 15. 02:19
📌 BOJ 20114 미아 노트 💡 조건 노트에 적힌 문자열이 번진 패턴은 일정했는데, 가령 "abc" 문자가 세로로 3글자씩, 가로로 2글자씩 번진 경우는 다음과 같았다. 아쉽게도 번진 문자열의 일부는 지워진 상태였다. 너무 많이 지워져버려서 해당 자리의 문자를 유추할 수 없는 경우, 완전히 문자열을 복원하지 못할 수도 있다. 첫째 줄에 원래 문자열의 길이 N, 세로로 번진 글자의 개수 H, 가로로 번진 글자의 개수 W가 주어진다. (1 ≤ N ≤ 100, 1 ≤ H ≤ 10, 1 ≤ W ≤ 10) H개의 줄에 걸쳐 N × W 길이의 문자열이 주어진다. 문자열은 알파벳 소문자 또는 '?'로만 이루어져 있다. '?'는 해당 자리의 문자가 지워진 경우를 뜻한다. 문자가 번진 자..