본문 바로가기

코드업14

CodeUp[코드업] C언어 1096 ~ 1099 : [기초 - 2차원 배열] 1096 : [기초 - 2차원 배열] 바둑판에 흰 돌 놓기 문제 설명 : https://codeup.kr/problem.php?id=1096 흰 돌이 올려진 바둑판의 상황을 출력하는 문제다. 2차원 배열을 배운다 2차원 배열의 선언 타입 변수 이름 [ ][ ] = { }; 2차원 배열은 테이블 형태의 데이터를 담는 데 사용된다. 3열 4행 0 0 0 0 0 0 0 0 0 0 0 0 int x[4][3] = { 0 };을 수행한 배열은 이렇게 나온다. 더보기 #include int main() { int i, j, x, y, input = 0; int a[20][20] = { 0 }; // 2차원 배열 20행(0 ~ 19) 20열(0 ~19)을 만든다. scanf("%d", &input); // 몇 개를 .. 2019. 12. 9.
CodeUp[코드업] C언어 1093 ~ 1095 : [기초 - 1차원 배열] 1093 : [기초 - 1차원 배열] 이상한 출석 번호 부르기 1 문제 설명 : https://codeup.kr/problem.php?id=1093 출석 번호를 n번 무작위로 불렀을 때, 각 번호가 불린 횟수를 각각 출력하는 문제다. 배열을 배운다. 배열이란 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다. 여기서 중요한 것은 같은 타입이어야 한다는 것이며, 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. 배열의 선언 타입 변수 이름 [ ] = { }; int a [24] = { }; // 0번부터 23번까지 모두 0으로 초기화된다. int a [24] = { 0 }; // 0번부터 23번까지 모두 0으로 초기화된다. int a [24] = {1, 2, 3}; // 1, 2, 3 이 순서.. 2019. 12. 9.
CodeUp[코드업] C언어 1086 ~ 1092 : [기초 - 종합] 1086 : [기초 - 종합] 그림 파일 저장용량 계산하기 문제 설명 : https://codeup.kr/problem.php?id=1086 그림 파일 저장용량을 계산해 출력하는 문제다. 그림 파일 저장용량 계산방법은 문제 설명에 있다. 1085와 같은 유형의 문제다. 더보기 #include int main() { int w, h, b; scanf("%d %d %d", &w, &h, &b); printf("%.2f MB", (float)w * h * b / 8 / 1024/ 1024); return 0; } 1087 : [기초 - 종합] 여기까지! 이제 그만~ 문제 설명 : https://codeup.kr/problem.php?id=1087 누적 연산하다가, 그 합이 입력된 정수보다 커지거나 같아지는 경.. 2019. 12. 9.
CodeUp[코드업] C언어 1078 ~ 1085 : [기초 - 종합] 1078 : [기초 - 종합] 짝수 합 구하기 문제 설명 : https://codeup.kr/problem.php?id=1078 정수를 입력받아 1부터 그 수까지 짝수의 합을 구하는 문제다. 이제부터는 지금까지 배운 문제를 종합하는 문제가 나온다. 종합문제에 대한 설명은 주석으로 대신하겠다. 더보기 #include int main() { int sum = 0; int i, j; scanf("%d", &j); // 정수를 입력받아 j에 저장 for(i = 1; i = j) // sum이 j보다 크거나 같을 때 밑 구문을 실행 printf("%d", i); // i를 출력 } return 0; } 1081 : [기초 - 종합] 주사위를 2개 던지면? 문제 설명 : https://codeu.. 2019. 12. 9.
CodeUp[코드업] C언어 1071 ~ 1077 : [기초 - 반복 실행구조] 1071 : [기초 - 반복 실행구조] 0 입력될 때까지 무한 출력하기 1 문제 설명 : https://codeup.kr/problem.php?id=1071 0이 입력될 때까지 출력하는 문제다. 제어문을 배운다. 제어문 중 goto문을 배운다. goto문을 사용하면 간단한 반복 실행을 만들 수 있다. goto문은 break문처럼 특정 위치로 프로그램의 흐름을 '즉시'변경한다. break문은 대상 위치가 문법적으로 제한된 상태이고 변경할 수도 없다. 또한 switch문과 반복문으로 사용이 제한된다. 반면에 goto문은 사용자가 레이블로 명시한 위치면 어디든 이동할 수 있다. 따라서 아무 제한 없이 코드의 흐름을 변경할 수 있다. 이것이 장점처럼 보이지만, 사실은 매우 심각한 단점이다. 코드의 흐름을 뒤죽박.. 2019. 12. 9.
CodeUp[코드업] C언어 1063 ~ 1070 : [기초 - 삼항연산] ~ [기초 - 조건/선택 실행구조] 1063 : [기초 - 삼항 연산] 두 정수 입력받아 큰 수 출력하기 문제 설명 : https://codeup.kr/problem.php?id=1063 입력된 두 정수 중 큰 수를 출력하는 문제다. 조건 연산자(삼항 연산자)를 배운다. 조건 연산자(삼항 연산자)를 의미하는 연산자는 '? :'이다. 조건 연산자는 C언어의 유일한 삼항 연산자다. 사용방법이나 문법구조가 지금까지 배운 연산자들과는 전혀 다르게 피연산자로 조건식이 필요하다. 그 조건의 결과로 피연산자인 두 개 항에서 하나를 선택한다. 삼항 연산자의 문법구조는 '조건식 ? x : y' 이렇게 된다. 이때, 조건식이 참이면 A를 선택하지만 거짓이면 B를 선택한다. 따라서 A와 B가 동시에 선택될 수 없다. 조건식은 대부분 관계 연산식이나 논리 연산.. 2019. 12. 9.
CodeUp[코드업] C언어 1053 ~ 1062 : [기초 - 논리 연산] ~ [기초 - 비트단위 논리 연산] 1053 : [기초 - 논리 연산] 참 거짓 바꾸기 문제 설명 : https://codeup.kr/problem.php?id=1053 참(True, 1) 또는 거짓(False, 0)이 입력되었을 때, 반대로 출력하는 문제다. 논리 연산자를 배운다. 논리 연산자 중 부정(NOT) 연산자를 배운다. C언어에서 비교 연산이 수행될 때 0은 거짓(False)이다. 비교 연산이 수행될 때 참(True)은 0이 아닌 모든 수다. 논리 연산자 부정(NOT)을 의미하는 연산자는 '!'다. 논리 연산자는 참 / 거짓으로 결론 내릴 수 있는 두 대상을 피연산자로 사용한다. 논리 연산자에는 '||' (논리합, OR), '&&' (논리곱, AND), '!' (부정, NOT)이 있다. '!' (부정, NOT) 연산은 저장된 값.. 2019. 12. 9.
CodeUp[코드업] C언어 1047 ~ 1052 : [기초 - 시프트 연산] ~ [기초 - 비교 연산] 1047 : [기초 - 비트 시프트 연산] 정수 1개 입력받아 2배 곱해 출력하기 문제 설명 : https://codeup.kr/problem.php?id=1047 정수를 입력받아 2배 곱해 출력하는 문제다. 비트 연산자를 배운다. 비트 연산자 중 시프트 연산을 사용한다. 비트 연산자란 자료형을 근거로 해석된 정보가 아니라, 일정 길이의 메모리에 담긴 2진수 정보를 말 그대로 비트 단위로 계산하는 연산자다. C언어 비트 연산자는 &(AND), |(OR), ^(XOR), ~(NOT), (Shift right)가 있다. 이중 ~(NOT)은 단항 연산자고 나머지는 모두 2항 연산자다. 비트 단위 상수를 기술할 때는 보통 16진수를 사용한다. 여기서는 비트 연사자 중 시프트 연산을 배우고 다른 비트 연산자가 나.. 2019. 12. 8.
CodeUp[코드업] C언어 1038 ~ 1046 : [기초 - 산술 연산] 1038 : [기초 - 산술 연산] 정수 2개 입력받아 합 출력하기 1 문제 설명 : https://codeup.kr/problem.php?id=1038 정수 두 개를 합하는 문제다. 정수 두 개를 입력받는다. 공백으로 구분된다. 정수를 합하여 출력한다. 합한 결과 값이 int 범위를 넘는지 생각해야 한다. 여기서는 연산자를 배운다. 1024 문제에서 연산자 우선순위를 배웠다. 연산자 우선순위는 매우 중요하기 때문에 보면서 실습해야 한다. 연산자의 첫 번째는 산술 연산자다. 산술 연산자는 기본적으로 알고 있는 수학에 대한 상식을 C언어로 그대로 옮긴 문법이다. 덧셈, 뺄셈 연산은 각각 '+'와 '-'로 표시하며 곱셈과 나눗셈은 각각 '*'와 '/'로 표시한다. 나머지 연산자는 '%'로 표시한다. 나머지 .. 2019. 12. 8.
CodeUp[코드업] C언어 1028 ~ 1037 : [기초 - 데이터형] ~ [기초 - 출력 변환] 1028 : [기초 - 데이터형] 정수 1개 입력받아 그대로 출력하기 2 문제 설명 : https://codeup.kr/problem.php?id=1028 정수를 입력받아 그대로 출력하는 문제다. %u는 unsigned다. %u는 32bit(4byte) 정수에 대한 출력 형식이다. unsigned int 데이터형을 사용하면 0 ~ 4294967295 범위의 정수를 저장한다. int는 +- 약 21억이지만 부호가 없기 때문에 약 21억, 약 21억을 더해 약 43억 미만의 범위를 저장한다. 여기서는 int의 부호가 없는 정수형 출력을 배운다. 더보기 #include int main() { int x; scanf("%u", &x); printf("%u", x); return 0; } 1029 : [기초 - .. 2019. 12. 7.