본문 바로가기

프로그램/C언어 1000제223

C언어 211제] NCP Lv3 소수 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. 입력 첫 번째 줄에 A와 B(1 ≤ A, B ≤ 100,000), N(1 ≤ N ≤ 1,000,000)이 공백을 경계로 주어진다. 출력 A÷B를 했을 때, 소숫점 아래 N번째 수를 출력한다. 예제 입력 1  25 7 5예제 출력 1  2 출처 : 백준_1312번 참고풀이]#define _CRT_SECURE_NO_WARNINGS #include  int main() {    int A, B, N;    int i;    int Mok;    //.. 2025. 1. 6.
C언어 210제] NCP Lv3 아무래도이문제는A번난이도인것같다 출처 :반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]어떤 정수 A가 있으면 그 수를 A = a1 * a2 * a3 * a4 ... * an으로 했을 때 A' = a1 + a2 + a3 ... + an이 성립하면 "A는 A'으로 변할 수 있다"라고 한다. (ai는 정수) 만약 A'이 A"으로 변할 수 있으면 "A는 A"으로 변할 수 있다"라고 한다. 이때 A와 B가 주어지면 A는 B로 변할 수 있는지 판별하시오. 입력 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다. 출력 각각의 테스트 케이스마다 한 줄에 변할 수 있으면 yes, 아니면 no를 출력한다. 예제 입력 1  1 6 5 예제 출력.. 2025. 1. 4.
C언어 209제] NCP Lv3 이항 계수 1 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]자연수 N과 정수 K가 주어졌을 때 이항 계수  를 구하는 프로그램을 작성하시오.  입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K ≤ N) 출력 를 출력한다. 예제 입력 1  5 2 예제 출력 1  10 출처 : 백준_11050번 참고풀이]#define _CRT_SECURE_NO_WARNINGS #include  int Fac(int n) {    int i, result = 1;    for (i = n;i > 0;i--) result *= i;    return result; } int main() {    int N, K;    //N,K를 입력받는다.    scanf("%d%d", &N, &K);    if ((.. 2025. 1. 4.
C언어 208제] 비토와 친척들(Vito's Family) 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]유명한 갱스터인 비토 데드스톤(Vito Deadstone)이 뉴욕으로 이사를 간다. 뉴욕에는 그의 가족들이 매우 많이 살고 있는데 그들은 모두 람피아 거리(Lamafia Avenue)에 살고 있다. 그는 그 친척들을 자주 만나러 갈 계획이기 때문에 친척들과 가까운 곳에 집을 구하기로 했다. 비토는 모든 친척집과의 거리 총합이 가장 작은 곳에 집을 구하고 싶어하는데, 하필이면 당신에게 그 문제를 해결하기 위한 프로그램을 만들어내라는 협박 편지를 보내왔다. 입력 입력은 여러 개의 테스트 케이스로 구성된다. 첫번째 줄에는 테스트 케이스의 개수가 들어있다. 각 테스트 케이스마다 친척집의 수를 나타내는 정수 r(0출력 각 테스트 케이스에 대해 비토가 원.. 2025. 1. 2.
C언어 207제] WERTYU 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]타이핑을 하다 보면 키보드에서 양손을 모두 원래 위치보다 오른쪽으로 한 칸 이동한 상태에서 키를 눌러서 오타가 나오는 경우가 종종 있다. 그러면 'Q'는 'W', 'J'는 'K' 같은 식으로 오른쪽에 있는 키가 입력된다. 이런 식으로 입력된 메시지가 주어졌을 때 원래 메시지로 복구시켜야 하는 임무가 주어졌다. 입력 입력은 여러 줄의 텍스트로 구성된다. 각 줄에는 숫자, 스페이스, 대문자('Q', 'A', 'Z' 제외), 위에 나와있는 구두 기호(역 따옴표 '`' 제외)가 들어갈 수 있다. 단어가 붙어있는 키(Tab, BackSp, Control 등)는 입력에 들어있지 않다. 출력 위에 나와있는 QWERTY 키보드를 기준으로 하여 각 글자나 기호.. 2025. 1. 2.
C언어 206제] 2007년 한국정보올림피아드 지역본선 초등부 2번 색종이 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오.예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽.. 2024. 12. 30.
C언어 205제] 2013년 한국정보올림피아드 지역본선 초등부 2번 덩치 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C.. 2024. 12. 30.
C언어 204제] 암호 깨기 II(Crypt Kicker II) 출처 : 반크_백제역사 유적지구 및 이스탐블역사 유적지구 문제]텍스트를 암호화하는 방법 중에 보안상 취약하긴 하지만 흔하게 쓰이는 방법으로 알파벳 글자를 다른 글자로 바꾸는 방법이 있다. 즉 알파벳의 각 글자가 다른 글자로 치환된다. 암호화된 것을 다시 원래대로 되돌릴 수 있으려면 두 개의 서로 다른 글자가 같은 글자로 치환되지 않아야 한다. 알려진 평문 공력법(known plain text attack)이라는 강력한 암호 분석 방법이 있다. 알려진 평문 공격법은 상대방이 암호화했다는 것을 알고 있는 구문이나 문장을 바탕으로 암호화된 텍스트를 관찰해서 인코딩 방법을 유추하는 방법이다. 여러 줄의 텍스트가 주어졌을 때 같은 케이스에서는 모든 줄에서 같은 치환 방법을 사용한다고 가정하고 그 중 한 줄에 th.. 2024. 12. 26.
C언어 203제] 인터프리터(Interpreter) 출처 : 반크_백제역사 유적지구 및 이스탐블역사 유적지구 문제]어떤 컴퓨터에 열 개의 레지스터와 1,000워드 분량의 램(RAM)이 있다. 각 레지스터 또는 램 위치에는 0 이상 999 이하의 세 자리 정수가 저장된다. 명령어는 세 자리 정수로 인코딩되며 램에 저장된다. 인코딩은 다음과 같다. 100종료2dnd레지스터를 n으로 설정(0이상 9이하) 3dnd레지스터에  n을  더함.4dnd레지스터를에  n을 곱함.5dsd레지스터를  s레지스터의 값으로 설정.6dss 레지스터의 값을 d레지스터에 덤함.7dsd 레지스터에 s레지스터의 값을 곱함. 8dad레지스터를 a레지스터에 저장된 주소의 램에 들어있는 값으로 설정.9daa레지스터에 저장된 주소의 램에 s레지스터의 값을 대입0dss레지스터에 0이 들어있지 않.. 2024. 12. 25.
C언어 202제] 그래픽 편집기(Graphical Editor) 출처 : 반크_백제역사 유적지구 및 이스탐블역사 유적지구 문제]포토샵 같은 그래픽 편집기를 이용하면 텍스트 편집기에서 문서를 수정하는 것처럼 비트맵 이미지를 수정할 수 있다. 이미지는 픽셀로 이루어진 M × N 배열로 표현되며 각 픽셀마다 색이 주어진다. 간단한 대화형 그래픽 편집기 흉내를 낼 수 있는 프로그램을 만들어보자. 입력 입력은 한 줄에 하나씩의 편집기 명령으로 구성된다. 각 명령은 줄 맨 앞에 잇는 대문자 한 개로 표현된다. 매개변수가 필요한 경우에는 그 명령과 같은 줄에 스페이스로 분리되어 매개변수가 입력된다. 픽셀 좌표는 1 이상 M 이하의 열 번호와 1 이상 N 이하의 행 번호, 이렇게 두 개의 정수로 푠현되며 이때 1편집기에서 받아륻이는 명령은 다음과 같다.I M N모든 픽셀이 흰색(O.. 2024. 12. 24.
C언어 201제] LCD 디스플레이(LCD Display) 출처 : 반크_백제역사 유적지구 및 이스탐블역사 유적지구 문제]한 친구가 방금 새 컴퓨터를 샀다. 그 친구가 지금까지 샀던 가장 강력한 컴퓨터는 공학용 전자 계산기였다. 그런데 그 친구는 새 컴퓨터의 모니터보다 공학용 계산기에 있는 LCD 디스플레이가 더 좋다며 크게 실망하고 말았다. 그 친구를 만족시킬 수 있도록 숫자를 LCD 디스플레이 방식으로 출력하는 프로그램을 만들어보자. 입력 입력 파일은 여러 줄로 구성되며 표시될 각각의 숫자마다 한 줄씩 입력된다. 각 줄에는 s와 n이라는 두 개의 정수가 들어있으며 n은 출력될 숫자(0출력 입력 파일에서 지정한 숫자를 수평 방향은 '-' 기호를, 수직 방향은 '|'를 이용해서 LCD 디스플레이 형태로 출력한다. 각 숫자는 정확하게 s+2개의 열, 2s+3개의 .. 2024. 12. 20.
C언어 200제] 여행(The Trip) 출처 : 반크_백제역사 유적지구 및 이스탐블역사 유적지구 문제]일년에 한 번씩 다른 여행지로 여행을 가는 학생 모임이 있다. 그 학생들은 지금까지 인디애나폴리스, 피닉스, 내시빌, 필라델피아, 산호세, 아틀란타를 여행했다. 이번 봄에는 아인트호벤으로 여행을 갈 계획이다. 이 학생들은 여행 경비를 모두 똑같이 부담하기로 합의했지만 돈을 쓸 때마다 나눠서 내는 것은 별로 실용적이지 못하다. 그래서 한 명씩 식비, 호텔비, 택시비, 비행기표를 부담하기로 한다. 여행이 끝난 후에 각 학생이 지출한 내역을 계산한 다음 1센트 단위 내에서 모든 학생들이 쓴 돈이 같도록 돈을 주고 받는다. 하지만 이전 여행의 경험에 비추어보면 돈을 주고 받는 과정은 정말 지루하고 오랜 시간을 요하는 작업이었다. 지출 내역이 주어졌을.. 2024. 12. 20.
반응형