구현
-
[백준] 17389 보너스 점수 with PythonPS 2023. 4. 14. 11:47
📌 BOJ 17389 보너스 점수 💡 조건 OX표에 N개의 문제들이 있을 때, 1번 문제, 2번 문제, ..., N번 문제 순으로 채점된다. 문제는 뒤로 갈수록 어려워지기 때문에, i 번 문제의 기본 점수는 i 점이다. 문제를 맞히면 그 문제의 기본 점수(즉 i 번 문제의 경우 i 점)를 획득하며, 틀리면 얻지 못한다. 기본 점수와 별개로, '보너스 점수'라는 값이 존재한다. 이는 처음에는 0점이다. 문제를 맞히면 그 때의 '보너스 점수'를 획득하고, '보너스 점수'의 값이 1점 증가한다. 문제를 틀리면 '보너스 점수'를 얻지 못하고, '보너스 점수'의 값이 0점으로 초기화된다. 첫 번째 줄에 OX표의 길이인 자연수 N이 주어진다. ..
-
[백준] 11383 뚊 with PythonPS 2023. 4. 13. 15:08
📌 BOJ 11383 뚊 💡 조건 정우는 "뚊"과 "돌돔"을 의미하는 두 이미지를 받았다. 과연 두 그림이 같은지 검사해보자. 즉 N× M 크기의 이미지와 N ×2 M 크기의 이미지가 주어질 때 첫 번째 이미지를 가로로 두 배로 늘이면 두 번째 이미지가 되는지 검사하는 프로그램을 작성하는 문제. 입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹은 소문자이다. 첫 번째로 주어진 이미지를 가로로 두 배로 늘렸을 때 두 번째 이미지가 된다면 "Eyfa"을 출력, 되지 않는다면 "Not Eyfa"을 출력 문자열, 구현 유형의 문제 🔖 예제 및 실행..
-
[백준] 4740 거울, 오! 거울 문자열 with PythonPS 2023. 4. 13. 13:25
📌 BOJ 12871 거울, 오! 거울 문자열 💡 조건 문장을 입력하면 입력한 문장의 개별 단어들을 역순으로 배치하여 거꾸로 바뀐 문장을 출력하는 프로그램을 만들어 '거울 읽기' 연습을 하려고 마음먹었다. 하나 또는 그 이상의 줄에 각각 ASCII 글자로 나타낼 수 있는 단어들(알파벳, 숫자, 공백, 구두점 등)로 구성된 문장을 입력한다. 각 문장은 최소 1글자에서 최대 80글자로 이루어져 있으며, ***을 입력하면 프로그램이 종료된다. 한 문장의 입력이 끝난 뒤 바로 입력한 문장의 글자들이 역순으로 바뀌어 배치된 문장을 출력한다. 문자열, 구현 유형의 문제 🔖 예제 및 실행결과 예제 1 AMBULANCE Evian madam, i'm adam *** 실행결과 1 ECNALUBMA ..
-
[백준] 1124 언더프라임 with PythonPS 2023. 4. 11. 15:20
📌 BOJ 1124 언더프라임 💡 조건 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, 그 수를 언더프라임 이라고 한다. 12는 목록에 포함된 소수의 개수가 3개이고, 3은 소수이니 12는 언더프라임이다. 두 정수 A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 정수 중에서 언더프라임인 것의 개수를 구하는 문제 2 ≤ A ≤ B ≤ 100,000 에라토스테네스의 체, 수학, 소수판정 유형의 문제 🔖 예제 및 실행결과 예제 1 2 10 실행결과 1 5 예제 2 100 105 실행결과 2 2 예제 3 17 17 실행결과 3 0 예..
-
[백준] 7600 문자가 몇갤까 with PythonPS 2023. 4. 11. 15:11
📌 BOJ 7600 문자가 몇갤까 💡 조건 각 케이스마다 문장에서 공백, 숫자, 특수 문자를 제외하고 얼마나 다양한 알파벳이 나왔는지를 구하는 문제. 대소문자는 하나의 문자로 처리한다. ex) 'A' == 'a' 입력은 250자를 넘지 않는 문장이 주어진다. 각 문장은 적어도 하나의 공백이 아닌 문자를 포함한다. (알파벳이 아닐 수 있다) 마지막 줄에는 '#'이 주어진다. 문자열, 구현 유형의 문제 🔖 예제 및 실행결과 예제 1 The quick brown fox jumped over the lazy dogs. 2 + 2 = 4 New Zealand Programming Contest. # 실행결과 1 26 0 16 ⌨️ 문제 풀이 입력받은 문장을 모두 소문자로..
-
[백준] 15792 A/B - 2 with PythonPS 2023. 4. 10. 13:03
📌 BOJ 15792 A/B - 2 💡 조건 두 정수 A와 B를 입력받은 다음, A/B 의 값을 출력하는 문제. 첫째 줄에 A와 B가 주어진다. (0 < A, B ≤ 10,000) 이 문제는 서브태스크가 있다. 구현, 수학 유형의 문제 🔖 예제 및 실행결과 예제 1 1 3 실행결과 1 0.33333333333333333333333333333333 예제 2 4 5 실행결과 2 0.8 ⌨️ 문제 풀이 해당 문제의 서브태스크 10번을 보면, 절대/상대 오차 허용 범위가 10**-1000 이다. 이는 소수점 1000자리까지의 수의 오차범위를 허용해준다는 것이니, 이를 생각하고 구현을 하면된다. 실수에는 정수부와 소수부가 있다. 이를 따로 나누어 계산을 해주고 문자열로 붙여서 출력하면 편하다. 🖥 소스 코드 fr..
-
[백준] 2455 지능형 기차 with PythonPS 2023. 4. 10. 11:36
📌 BOJ 2455 지능형 기차 💡 조건 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 이 기차는 다음 조건을 만족하면서 운행된다고 가정한다. 기차는 역 번호 순서대로 운행한다. 출발역에서 내린 사람 수와 종착역에서 탄 사람 수는 0이다. 각 역에서 현재 기차에 있는 사람보다 더 많은 사람이 내리는 경우는 없다. 기차의 정원은 최대 10,000명이고, 정원을 초과하여 타는 경우는 없다. 4개의 역에 대해 기차에서 내린 사람 수와 탄 사람 수가..
-
[백준] 3943 헤일스톤수열 with PythonPS 2023. 4. 4. 17:09
📌 BOJ 3943 헤일스톤수열 💡 조건 헤일스톤 수열은 아래와 같이 정의한다. n이 짝수라면, 2로 나눈다. n이 홀수라면, 3을 곱한 뒤 1을 더한다. 헤일스톤 추측은 임의의 양의 정수 n으로 수열을 시작한다면, 항상 4, 2, 1, 4, 2, 1,...로 끝난다는 추측이다. 이 문제에서는 1이 나오면 수열이 끝난 것으로 처리한다. n이 주어졌을 때, 이 수열에서 가장 큰 값을 찾아 출력하는 문제 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 다음 줄부터 T개의 줄에는 헤일스톤 수열의 시작값 n이 주어진다. (1 ≤ n ≤ 100,000) 구현, 시뮬레이션 유형읨 문제 🔖 예제 및 실행결과 예제 1 4 1 3 9999 100000 실행결과 1 1 16 101248 10..
-
[백준] 1652 누울 자리를 찾아라 with PythonPS 2023. 4. 3. 16:40
📌 BOJ 1652 누울 자리를 찾아라 💡 조건 코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다. 방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다. 영식이가 누울 수 있는 자리에는 조건이 있다. 똑바로 연속해서 2칸 이상의 빈 칸이 존재하면 그 곳에 몸을 양 옆으로 쭉 뻗으면서 누울 수 있다. 가로로 누울 수도 있고 세로로 누울 수도 있다. 누울 때는 무조건 몸을 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다. (중간에 어정쩡하게 눕는 경우가 없다.) 방의 크기 N과 방의 구조가 주어졌을 때, 가로로 누울 수 있는 자리와 세로로 누울 수 있는 자리의 수를 구하는 문제 N은 1이상 100이하의 정수이다. '.'은 아무것도 없는 곳을 의미하..
-
[백준] 10419 지각 with PythonPS 2023. 4. 3. 16:14
📌 BOJ 10419 지각 💡 조건 교수님의 지각시간 0이상의 정수 t와 수업을 일찍 마쳐주는 시간 s 사이에는 s = t**2 의 관계가 있다. 창영이가 궁금한 경우의 수 T(1 ≤ T ≤ 100)가 첫 번째 줄에 주어지고, 이어서 T 개의 줄에 수업시간 d(1 ≤ d ≤ 10,000, d는 정수)가 차례대로 주어진다. 수업시간에 따른 교수님이 지각할 수 있는 최대 시간 t를 정수로 구해서 출력한다. 지각할 수 있는 최대의 시간을 알아보는 문제 브루트포스 유형의 문제 🔖 예제 및 실행결과 예제 1 5 1 2 5 6 7 실행결과 1 0 1 1 2 2 ⌨️ 문제 풀이 지각할 수 있는 최대시간을 구하려면, 수업시간 d의 최대값이 얼마인지 확인해봐야한다. 지각할 수 있는 최대시간은 100부터 -1씩 줄여나가 ..