본문 바로가기

2022/0226

좌표 압축 - 18870 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 26837 11604 8826 41.274% 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 제한 1 ≤ N ≤ 1,000,000 -109 ≤ Xi ≤ 109 예제 입력 1.. 2022. 2. 26.
골드바흐의 추측 - 9020 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 50384 21206 16230 40.777% 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 1.. 2022. 2. 25.
베르트랑 공준 - 4948 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 58374 23269 18921 40.157% 문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스.. 2022. 2. 25.
달팽이는 올라가고 싶다 - 2869 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.15 초 (추가 시간 없음) (하단 참고) 128 MB 133814 36609 31086 28.834% 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 예제 입력 1 2 1 5 예제 .. 2022. 2. 22.
단어 공부 - 1157 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 146246 57731 46030 39.096% 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 Mississipi 예제 출력 1 ? Solution https://github.com/anothel/BOJ/blob/main/python/.. 2022. 2. 22.
나머지 - 3502 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 100371 58432 49907 58.604% 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열 번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 예제 입력 1 1 2 3 4 5 6 7 8 9 10 예제 출력 1 10 Solu.. 2022. 2. 21.
평균은 넘겠지 - 4344 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 173170 62801 52499 36.393% 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 예제 입력 1 5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 .. 2022. 2. 21.
사분면 - 9610 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 4726 3276 3039 71.776% 문제 2차원 좌표 상의 여러 점의 좌표 (x, y)가 주어졌을 때, 각 사분면과 축에 점이 몇 개 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 n (1 ≤ n ≤ 1000)이 주어진다. 다음 n개 줄에는 점의 좌표 (xi, yi)가 주어진다. (-106 ≤ xi, yi ≤ 106) 출력 각 사분면과 축에 점이 몇 개 있는지를 예제 출력과 같은 형식으로 출력한다. 예제 입력 1 5 0 0 0 1 1 1 3 -3 2 2 예제 출력 1 Q1: 2 Q2: 0 Q3: 0 Q4: 1 AXIS: 2 Solution https://github.com/anothel/BOJ/blob/ma.. 2022. 2. 20.
팰린드롬인지 확인하기 - 10988 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 13420 8977 7798 68.362% 문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. 예제 입력 1 level 예제 출력 1 1 예제 입력 2 baekjoon 예제 출력 2 0 Solution http.. 2022. 2. 20.
약수들의 합 - 9506 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 6402 3735 3400 60.028% 문제 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. 입력 입력은 테스트 케이스마다 한 줄 간격으로 n이 주어진다. (2 < n < 100, 000) 입력의 마지막엔 -1이 주어진다. 출력 테스트 케이스마다 한 줄에 하나씩 출력해야 한다. n이 완전수라면, n을 n이 아닌 약수들의 합으로 나타내어 출력한다(예제 출력 참고). 이때, 약수들은 오름차순으로 나열해야 한다. n이 완전수가 아니라면 n is NOT perfect. 를 출력한다. 예제.. 2022. 2. 19.
네 번째 점 - 3009 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 27545 19836 17915 73.078% 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 1 5 5 5 7 7 5 예제 출력 1 7 7 예제 입력 2 30 20 10 10 10 20 예제 출력 2 30 10 Solution https://github.com/anothel/BOJ/blob/main/python/3009_FourthPoint.py GitHub - anothel/BOJ Contr.. 2022. 2. 19.
수들의 합 - 1789 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 23402 9919 8396 43.298% 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 예제 입력 1 200 예제 출력 1 19 Solution https://github.com/anothel/BOJ/blob/main/python/1789_Add_of_numbers.py GitHub - anothel/BOJ Contribute to anothel/BOJ development by creating an account on GitHub. github.co.. 2022. 2. 19.
위대한 사기꾼 - 3996 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 322 81 67 32.367% 문제 믿기 힘들겠지만 상근이는 이번 겨울 방학에 달에 갔다 왔다. 방학이 끝나고 다시 학교로 돌아온 상근이는 친구들에게 달나라 사람(Selenites)을 만났던 이야기를 해주었다. 상근이는 달에서 사용하는 수 체계를 주로 설명해주었다. 달에서는 음의 진법을 사용한다. 입력 출력 첫째 줄에 상근이가 달에서 생활하면서 외운 숫자의 개수를 출력한다. 예제 입력 1 21 3 예제 출력 1 9 예제 입력 2 21 2 예제 출력 2 8 힌트 첫 번째 예제에서 상근이는 0, 1, 2, 9, 10, 11, 18, 19, 20을 외웠다. 19는 3진법과 -3진법에서 19 = 2013 = 201-3으로 표현이 같다... 2022. 2. 18.
화성 수학 - 5355 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 5640 3416 3103 62.852% 문제 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, % 는 5를 더하며, #는 7을 빼는 연산자이다. 따라서, 화성에서는 수학 식의 가장 앞에 수가 하나 있고, 그다음에는 연산자가 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 다음 줄에는 화성 수학식이 한 줄에 하나씩 주어진다. 입력으로 주어지는 수는 정수이거나 소수 첫째 자리까지 주어지며, 0 이상 100 이하이다. 연산자는 최대 3개 주어진다. 출력 각 테스트 케이스에 대해서, 화성 수학식의 결.. 2022. 2. 17.
시험 성적 - 9498 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 206701 114084 98734 56.000% 문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 시험 성적을 출력한다. 예제 입력 1 100 예제 출력 1 A Solution https://github.com/anothel/BOJ/blob/main/python/9498_Credit.py 후기 파이썬은 기존에 내가 사용하던 C/C++와 상당히 비슷하면서도 새로운 문법을 가지고 있다. if, els.. 2022. 2. 16.
오븐 시계 - 2525 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 26150 11894 10594 46.626% 문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다... 2022. 2. 16.
초콜릿 자르기 - 2163 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 23850 16547 14514 71.727% 문제 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿을 친구들과 나눠 먹기로 했다. 이를 위해서 정화는 초콜릿을 계속 쪼개서 총 N×M개의 조각으로 쪼개려고 한다. 초콜릿을 쪼갤 때에는 초콜릿 조각을 하나 들고, 적당한 위치에서 초콜릿을 쪼갠다. 초콜릿을 쪼갤 때에는 금이 가 있는 위치에서만 쪼갤 수 있다. 이와 같이 초콜릿을 쪼개면 초콜릿은 두 개의 조각으로 나눠지게 된다. 이제 다시 이 중에서 초콜릿 조각을 하나 들고, 쪼개는 과정을 .. 2022. 2. 16.
A+B - 7 - 11021 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 147827 73641 64900 50.207% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. 예제 입력 1 5 1 1 2 3 3 4 9 8 5 2 예제 출력 1 Case #1: 2 Case #2: 5 Case #3: 7 Case #4: 17 Case #5: 7 Solution https://github.com/ano.. 2022. 2. 16.
Create Phone Number Write a function that accepts an array of 10 integers (between 0 and 9), that returns a string of those numbers in the form of a phone number. Example createPhoneNumber(int[10]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}) // => returns "(123) 456-7890" The returned format must be correct in order to complete this challenge. Don't forget the space after the closing parentheses! Solution #include std::string ge.. 2022. 2. 15.
Row of the odd triangle Given a triangle of consecutive odd numbers: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 ... find the triangle's row knowing its index (the rows are 1-indexed), e.g.: odd_row(1) == [1] odd_row(2) == [3, 5] odd_row(3) == [7, 9, 11] Note: your code should be optimized to handle big inputs. Solution #include std::vector odd_row(unsigned long long n) { std::vector vResult; unsigned long long c = n * (n-.. 2022. 2. 14.
피보나치 함수 - 1003 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.25 초 (추가 시간 없음) 128 MB 146939 41099 32063 30.981% 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두.. 2022. 2. 13.
터렛 - 1002 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 142436 29400 23319 21.452% 문제 조규현과 백승환은 터렛에 근무하는 직원이다. 하지만 워낙 존재감이 없어서 인구수는 차지하지 않는다. 다음은 조규현과 백승환의 사진이다. 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진.. 2022. 2. 12.
형상 관리 툴 선택 1 - 깃랩, 깃헙, 비트버킷? Bitbucket이요? 그건 뭐죠? 지인들께 어떤 종류의 소스 코드 관리 도구를 사용하냐고 질문했을 때 받은 대답 중 특이한 대답이 하나 있었다. 바로 git이었는데, 깃랩도 깃허브도, 빗버킷도 아닌 git이었다. 관리는 Sourcetree를 사용한다고 했다. 하긴 그 친구는 학생 때부터 그런 본연적인 것을 좋아했다. 예를 들어보자면 포토샵으로 할 일을 그림판으로 하는 그런 걸 좋아했던 친구이다. 나는 git으로만 사용하진 못하겠고, 잘 사용하게끔 도와줄 다른 플랫폼이 웬만하면 필요하다. 그게 GitLab, GitHub 아니면 Bitbucket이다. 이런 게 있으면 생산성 높은 일을 할 자신이 있다. 좋은 게 있는 데 사용하지 않아야 할 이유는 없다고 생각한다(어차피 지금 회사에는 이미 있다). 아마도 .. 2022. 2. 11.
애자일 소프트웨어 개발 선언 애자일 소프트웨어 개발 선언 (Manifesto for Agile Software Development) 우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다: 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다. 이 말은, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James.. 2022. 2. 10.
형상 관리 도구 뭐 쓰세요? 깃? SVN? 형상관리 도구: Git? SVN? 혹시 Plastic SCM?? 정의 소프트웨어 형상 관리, 구성 관리(SCM, Software Configuration Management), 버전 관리 시스템(VCS, Version Control System), 소스 관리(source control), 소스 코드 관리(SCM, Source Code Management)는 일반적으로 모두 동일한 의미 하며, 특히 형상 관리는 소스 코드뿐 아니라 개발 환경, 빌드 구조 등 전반적인 환경 전반적인 내역에 대한 관리 체계를 정의한다. 즉, 하나의 소프트웨어 산출물(binary)을 생성하기 위해 필요로 하는 아이템들과 공정 방식의 정의, 그리고 재생성을 위한 전반적인 환경까지 베이스라인(baseline)화하여 관리하는 방식 전.. 2022. 2. 9.
데브옵스란 무엇인가 1 데브옵스: 빠른 서비스 적용을 위해 개발과 운영을 동시에 하는 메커니즘 데브옵스의 정의: 얼른 일 마치고 집에 빨리 가기 위해 만든 술수 소프트웨어 개발 방법론의 하나로, 개발(development)과 운영(operation)의 합성어이다. 개발 담당자와 운영 담당자가 연계하여 협력하는 개발 방법론을 말한다며 두산백과는 얘기하고 있다. 하지만 데브옵스라는 단어의 의미를 딱히 이렇다 하게 정하지 않았다고 위키에서는 말하고 있다. 사실 위에 스스로 내린 정의는 조금 오버한 감이 없이 않아 있는 것 같고, 그나마 진정성이 보이는 의미는 이 정도가 되지 않을까 싶다. 팀 지원, 팀 간 커뮤니케이션 및 공동 작업, 기술 자동화를 강조하며, 소프트웨어 개발 팀과 IT 팀 간의 프로세스를 자동화하고 통합하는 일련의 .. 2022. 2. 8.