프로그램/C언어 1000제237 C언어 237제] NCP Nextop Lv.3 애너그램 출처 : 반크_반크 20년 백서 문제]2013 HSPC 2번 두 단어 A와 B가 주어졌을 때, A에 속하는 알파벳의 순서를 바꾸어서 B를 만들 수 있다면, A와 B를 애너그램이라고 한다. 두 단어가 애너그램인지 아닌지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수(출력 각 테스트 케이스마다 애너그램인지 아닌지를 예체 출력과 같은 형식으로 출력한다. 출력 형식 정확한 출력 형식은 제출에서 언어를 Java로 설정하면 확인할 수 있다. 예제 입력 1 3 blather reblath maryland landam bizarre brazier 예제 출력 1 blather & reblath are anagrams. maryland & landam are NOT anagrams. bizarre .. 2025. 3. 18. C언어 236제] NCP Nextop Lv.3 3대 측정 출처 : 반크_반크 20년 백서 문제]2020 Sogang Programming Contest Master A번 (서강대학교)2020 Sogang Programming Contest Open I번 웨이트 트레이닝에서의 3대 측정은 스쿼트, 벤치프레스, 데드리프트의 중량을 측정하는 것이다. 하지만 세 명이 한 팀을 이루어 출전하는 전국 대학생 프로그래밍 대회(ICPC)의 참가자들은 다소 독특한 방법으로 3대를 측정하는데, 바로 팀원 각각의 실력을 수치로 나타내 주는 ‘코드포스 레이팅’을 비교하는 것이다. 웨이트 트레이닝계에는 3대 중량을 합쳐 500kg를 넘지 못하는 사람은 ‘언더아머’ 브랜드의 옷을 입지 못한다는 암묵적인 룰이 있으며. 이들을 단속하는 ‘언더아머 단속반’이 존재한다는 소문도 있다. Sog.. 2025. 3. 18. C언어 235제] NCP Nextop Lv.3 UCPC는 무엇의 약자일까? 출처 : 반크_반크 20년 백서 문제]2018년 UCPC 예선 G번. UCPC는 '전국 대학생 프로그래밍 대회 동아리 연합 여름 대회'의 줄임말로 알려져있다. 하지만 이 줄임말이 정확히 어떻게 구성되었는지는 아무도 모른다. UCPC 2018을 준비하던 ntopia는 여러 사람들에게 UCPC가 정확히 무엇의 줄임말인지 물어보았지만, 아무도 정확한 답을 제시해주지 못했다. ntopia가 들은 몇 가지 답을 아래에 적어보았다. Union of Computer Programming Contest club contest Union of Computer Programming contest Club contest Union of Computer Programming contest club Contest Union o.. 2025. 3. 17. C언어 234제] NCP Nextop Lv.3 포켓몬 GO 출처 : 반크_반크 20년 백서 문제]2016/2017 COCI 크로아티아 정보학 공개 경쟁 #2 1번 포켓몬GO 모바일 게임을 즐겨 하는 지우는 Jetpack Joyride 에 금새 질렸고 포켓몬 GO를 시작했다! 이 게임의 재미있는 점은 포켓몬을 진화시킬 수 있다는 것이다. 지우가 Pi 라는 포켓몬을 진화시키기 위해서는 해당 포켓몬의 Ki 개의 사탕이 필요하다. 진화가 된 후에는 2개의 사탕을 돌려받는다. 각 포켓몬은 그들 종의 사탕으로만 진화할 수 있다. 지우는 N종의 포켓몬이 있고 Pi 라는 포켓몬의 사탕은 Mi 개를 가지고 있으며 지우는 진화시킬 수 있는 포켓몬의 총 마리수를 궁금해한다. 또한, 지우는 가장 많이 진화시킬 수 있는 포켓몬이 무엇인지 알고 싶어한다. 만약 그런 포켓몬들이 여러 종이.. 2025. 3. 12. C언어 233제] NCP Nextop Lv.2 동전 0 출처 : 반크_반크 20년 백서 문제]준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 예제 입력 1 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 예제 출력 1 6 예제 입력 .. 2025. 3. 12. C언어 232제] 유리 구슬(Marbles) 출처 : 반크_반크 20년 백서 문제]나는 유리 구슬을 모으는데, 그 구슬들을 담아놓을 상자를 사려고 한다. 상자는 두 가지 유형으로 나눌 수 있다. 타입 1: 하나에 C1 달러며 정확하게 n1개의 구슬을 담을 수 있다. 타입 2: 하나에 C2 달러며 정확하게 n2개의 구슬을 담을 수 있다. 각 상자에는 정확하게 주어진 용량만큼의 구슬을 집어넣을 것이며, 총비용은 최소한으로 줄였으면 한다. 여러 상자에 구슬을 나눠 담는 가장 좋은 방법을 찾아보자. 입력 입력 파일에는 테스트 케이스가 여러 개 들어갈 수 있다. 각 테스트 케이스는 정수 n(1 이상 2,000,000,000 이하)이 들어있는 줄로 시작한다. 그 다음 줄에는 Ci과 ni이, 그 다음 줄에는 C2와 n2가 입력된다. 여기에서 C1, C2, n1.. 2025. 3. 1. C언어 231제] 스미스 수(Smith Numbers) 출처 : 반크_반크 20년 백서 문제]1982년, 앨버트 윌란스키(Albert Wilansky)라는 수학자는 그가 가지고 있던 주소록을 흝어보다가 그의 처제인 H. 스미스(H. Smith)의 전화번호에 특이한 속성이 있다는 것을 발견했다. 그 수의 각 자리 숫자 합은 그 수의 소인수 각 자리 숫자의 합과 같았다. 잘 이해가 안 된다면 실제 숫자를 예로 들어서 생각해보자. 스미스의 전화번호는 493-7775였다. 이 수는 다음과 같이 소인수분해할 수 있다. 4937775 = 3*5*5*65837 전화번호의 각 자리 숫자의 합은 4+9+3+7+7+7+5=42이고, 소인수의 각 자리 숫자의 합은 3+5+5+6+5+8+3+7=42이므로 둘 다 42로 같은 값을 가진다. 윌란스키는 이런 유형의 수에 처제의 이름을.. 2025. 2. 27. C언어 230제] 소수 네 개의 합(Summation of Four Primes) 출처 : 반크_반크 20년 백서 문제]워링(Waring)의 소수 가설은 모든 홀수는 소수 또는 소수 세 개의 합이라고 주장하는 가설이다. 골드바흐(Goldbach)의 가설은 모든 짝수는 소수 두 개의 합이라고 주장하는 가설이다. 이 두 문제는 200년이 넘게 해결되지 않고 있다. 이 문제와 관련하여 조금 간단한 문제를 풀어보자. 주어진 정수를 정확하게 소수 네 개의 합으로 표현하는 방법을 찾아내자. 입력 한 줄에 하나씩의 정수 n(N출력 각 입력 케이스 n에 대해 합해서 n이 되는 네 개의 소수를 출력한다. (한 줄에 한 케이스) 입력된 수가 소수 네 개의 합으로 표현될 수 없으면 "Impossible"이라고 출력한다. 답이 여러 가지 나올 수도 있는데, 그런 경우에는 아무 답이나 출력해도 된다. 입력 .. 2025. 2. 19. C언어 229제] 2003년 크로아티아 올림피아드 경진대회 고등부 Seniors 1번 금메달, 은메달, 동메달은 누가? 출처 : 반크_반크 20년 백서 문제]2018년에 대한민국 평창에서 동계올림픽이 개최된다. 그 중에서도 스키는 동계올림픽의 꽃이지만 유독 우리나라에선 인기가 좀 없는 것 같다. 그래서 이번 평창올림픽에선 새로운 스키 경기 규칙이 적용 되었다. 새로 적용된 규칙은 다음과 같다. 스키 경기는 두 번의 경주로 이루어져 있다. 총 N명의 선수가 첫 번째 경주에 참가하고 각각 번호를 부여받는다. 1번 선수부터 N번 선수까지 순서대로 한 명씩 산을 타고 내려간다. 산을 다 내려오면 내려온 선수의 현재 순위가 정해질 것이다. 첫 번째 경주가 끝나고 난 뒤 최종적으로 정해진 순위에 따라서 1등부터 M등까지의 선수들에게만 두 번째 경주에 나갈 수 있는 자격이 주어진다. 두 번째 경주에서는 첫 번째 경주에서 늦게 들어온.. 2025. 2. 17. C언어 228제] NCP Lv3 수 정렬하기 2 출처 : 반크_반크 20년 백서 문제]N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1예제 출력 1 1 2 3 4 5 출처 : 백준_2751번 참고풀이]#define _CRT_SECURE_NO_WARNINGS #include int M[1000000]; int B[1000000]; void merge(int A[], int low, int mid, i.. 2025. 2. 17. C언어 227제] 팩토리얼 나누기(Factovisors) 출처 : 반크_반크 20년 백서 문제]팩토리얼 함수 n!은 모든 음이 아닌 정수 n에 대해 다음과 같이 정의된다. 0! n!=nX(n-1)! (n>0) 다음과 같은 식을 만족하는 정수 k가 존재하면 b가 a로 나뉘어 떨어진다. (a divides b)고 한다. kXa=b 입력 입력은 여러 줄로 구성되며 각 줄에는 두 개의 음이 아닌 정수 n과 m이 입력된다. n과 m은 모두 2^31보다 작다. 출력 입력된 각 줄에 대해 n!이 m으로 나뉘어 떨어지는 지를 나타내는 문장을 출력한다. 문장의 형식은 아래에 나와 있는 형식대로 한다. 입력 예 6 9 6 27 20 10000 20 100000 1000 1009 출력 예 9 divides 6! 27 does not divide 6! 10000 divides 20.. 2025. 2. 6. C언어 226제] 유크리드 문제(Euclid Problem) 출처 : 반크_반크 20년 백서 문제]유클리드가 밝혀낸 바에 따르면 임의의 정수 A, B에 대해 A와 B의 최대공약수를 D라고 할 때 AX+BY=D를 만족하는 정수 X와 Y가 존재한다. A와 B가 주어졌을 때 위 식으 만족시키는 X와 Y, 그리고 A와 B의 최대공약수 D를 구하라. 입력 한 줄에 두 개씩의 수가 입력되며 두 수는 각각 A와 B다. A와 B는 스페이스로 구분된다(A, B출력 입력된 각 줄에 대해 각각 스페이스로 구분된 세 개의 정수 X와 Y 그리고 D를 출력한다. 식을 만족하는 X와 Y가 여러 개 있으면, |X| + |Y|가 최소가 되는 값을 출력한다(X입력 예 4 6 17 17 출력 예 -1 1 2 0 1 17 출처] Programming Challenges 알고리즘 트레이닝 북(한빛미.. 2025. 2. 5. 이전 1 2 3 4 ··· 20 다음 반응형