프로그램/C언어 1000제227 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. C언어 199제] 지뢰 찾기(Minesweeper) 출처 : 반크_백제역사 유적지구 및 이스탐블역사 유적지구 문제]지뢰 찾기를 해본 적이 있는 독자들이 많을 것이다. 이름은 잘 기억나지 않지만 어떤 운영체제에 이 작고 귀여운 게임이 깔려있다. 지뢰 찾기는 M X N 크기의 지뢰밭에서 모든 지뢰의 의치를 찾아내는 게임이다. 이 게임에서는 각 칸에 인접한 칸에 몇 개의 지뢰가 있는지를 보여준다. 각 칸에는 최대 여덟 개의 인접한 칸이 있을 수 있다. 아래에서 왼쪽에 있는 4X4 지뢰밭에는 지뢰 두 개가 있으며 각각은 '*' 문자로 표시되어 있다. 이 지뢰밭을 방금 설명한 힌트 숫자로 표기하면 오른쪽에 있는 것과 같은 필드가 만들어진다. * . . . * 1 0 0 . . . . 2 2 1 0 . * . . 1 * 1 0 . . .. 2024. 12. 19. C언어 198제] 3n+1 문제(The 3n+1 Porblem) 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]어떤 수열을 만들어내는 다음과 같은 알고리즘을 생각해보자. 어떤 정수 n에서 시작해 n이 짝수면 2로 나누고, 홀수면 3을 곱한 다음 1을 더한다. 이렇게 해서 새로 만들어진 숫자를 n으로 놓고 n=1이 될 때까지 같은 작업을 계속 반복한다. 예를 들어 n=22이면 다음과 같은 수열이 만들어 진다.22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 아직 증명되진 않았지만 모든 정수 n에 대해 이 알고리즘을 적용시키면 결국에는 n=1에 이르게 되는 것으로 추측된다. 그리고 이 가설은 적어도 1,000,000까지의 정수에 대해서는 참이다.n이라는 값이 입력되었을 때 1이 나올 때까지 만들어진 수의 개수(1 포함)를 n개의 .. 2024. 12. 17. C언어 197제] C언어 콘서트(개정 3판) CHAPTER 7 mini Project Tic-Tac-Toe 게임 p285 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]컴퓨터와 게이머가 대결하는 프로그램으로 수정하시오. 조건) ▶ 가로줄, 세로줄, 각 대각선이 같은 문자이면 끝내도록 하시오. ▶ 승부가 나지 않으면 "게이머와 컴퓨터는 비겼습니다."를 출력하시오. ▶ 그외 참고풀이 결과를 참조하여 프로그램을 완성하시오.참고풀이]#define _CRT_SECURE_NO_WARNINGS #include #include //srand(), rand() #include //time() int main() { char board[3][3]={ '\0' }; int r, c, y, x;//행열변수 int k, i; int pn, cn;//게이머 또는 컴퓨터의 같은 문자 개수 체크 변수 .. 2024. 12. 7. C언어 196제] 2006년 ICPC 뉴질랜드 NZPC B번 팰린드롬수 출처 : 반크_백제역사 유적지구와 이스탐블역사 유적지구 문제]어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며,.. 2024. 12. 4. C언어 195제] 2004년 한국정보올림피아드 지역본선 중등/고등부 1번 최대공약수와 최소공배수 출처 : 반크_백제역사 유적지구와 이스탐블 역사지구 문제]두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 예제 입력 1 24 18 예제 출력 1 6 72 출처 : 백준_2609번 참고 알고리즘 : 유클리드 호제법참고풀이]#define _CRT_SECURE_NO_WARNINGS #include //유클리드 호제법 사용 //최대공약수 구하기 int GCD(int a, int b) { return (b == 0) ? a : G.. 2024. 11. 30. C언어 194제] NPC Lv2. 달팽이2 출처 : 반크_백제역사 유적지구와 이스탐블 역사지구 문제]M줄 N칸으로 되어 있는 표 위에, 달팽이 모양으로 선을 그리려고 한다.ㅇ 위의 그림은 M=5, N=3의 예이다. 이제 표의 왼쪽 위 칸(ㅇ)에서 시작하여, 오른쪽으로 선을 그려 나간다. 표의 바깥 또는 이미 그려진 칸에 닿아서 더 이상 이동할 수 없게 되면, 시계방향으로 선을 꺾어서 그려나간다.ㅇ→↘↗↘↓↑↓↓↑끝↓↖←↙ 위의 표는 선을 그려 나간 모양을 나타낸 것이다. 선이 꺾어진 부분은 대각선으로 나타내었다. 표의 모든 칸이 채워질 때까지, 선을 몇 번 꺾게 될까? 입력 첫째 줄에 M과 N이 빈 칸을 사이에 두고 주어진다. (2 ≤ M, N ≤ 100) 출력 첫째 줄에 표의 모든 칸이 채워질 때까지 선이 꺾어.. 2024. 11. 30. C언어 193제] 조건에 맞는 암호를 만드시오. 출처 : 반크_백제역사 유적지구와 이스탐블 역사지구 문제]자연수를 입력받아 다음 규칙에 따라 암호를 만들어 출력하는 프로그램을 작성하시오. 각 숫자는 다음 표와 같이 바뀌어 암호가 된다. 입력 예 (input.txt) 9887 출력 예 (output.txt) GOOD 참고 알고리즘]암호화/복호화 참고풀이]#include int main() { int N;//입력된 숫자를 저장할 변수를 선언. int insu;//작업할 때 N을 대신할 변수를 선언 //숫자들과 대칭되는 문자배열을 선언한다. char ch[10]={'Y','B','K','E','A','R','N','D','O','G'}; int a;//반복변수 int mok; int jari; scanf(.. 2024. 11. 29. C언어 192제] 평범한 배낭 출처 : 반크_백제역사 유적지구와 이스탐블 역사지구 문제]이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 입력 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸.. 2024. 11. 28. 이전 1 2 3 4 5 6 ··· 19 다음 반응형