본문 바로가기

C, C++22

[백준BOJ 1157번] 단어 공부 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net [해답 코드 및 설명] #include #include int main(void) { int cnt[26] = {0, }; char s[1000001] = {0, }; scanf("%s", s); int len = strlen(s); for (int i = 0; i = 'a' && s[i] = 'a' && s[i] 2020. 11. 23.
[코드업 1202번] 등급 판정 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1202 등급 판정 점수가 정수로 입력된다. (입력되는 정수는 0~100이다) codeup.kr [해답 코드 및 설명] #include int main() { int n; scanf("%d", &n); switch (n / 10) { case 10: case 9: printf("A"); break; case 8: printf("B"); break; case 7: printf("C"); break; case 6: printf("D"); break; default: printf("F"); } return 0; } 0~100까지의 정수에 따라 등급을 출력하면 되고 등급은 점수 십의 자리에서 결정된다. 따라서.. 2020. 11. 17.
[코드업 1131번] 문자 출력하기 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1131 문자 출력하기 입력받은문자를 그대로 출력된다. codeup.kr [해답 코드 및 설명] #include int main() { char c; scanf("%c", &c); printf("%c", c); return 0; } %c 서식 지정자는 문자 하나에 대한 서식 지정자로 값을 문자로 표현한다. 따라서 %c로 입력받으면 입력받은 값을 문자로 인식하여 그 아스키코드 값을 변수에 저장한다. 그리고 이렇게 입력받은 값을 출력할 때도 %c로 출력하게 되면 그 정수값이 아니라 문자로 변환하여 출력하게 된다. 따라서 위와 같이 작성하게 되면 문자 한 개를 입력 받아 그대로 출력하므로 해답이 된다. 2020. 11. 12.
[코드업 1120번] 세 수의 평균 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1120 세 수의 평균 세 수의 평균을 소수 둘째자리까지 출력하시오. codeup.kr [해답 코드 및 설명] #include int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%.2f", (a + b + c) / 3.0f); return 0; } 3개의 정수를 입력받아 소수점 2자리까지의 평균을 출력하는 문제다. 정수를 입력받아 나누기를 할 때 3.0f로 나눔으로써 자연스럽게 형변환이 일어나도록 유도하였다. 물론 아래와 같이 처음으로 실수형으로 입력받아도 문제는 해결된다. #include int main() { float a, b, c.. 2020. 11. 12.
[코드업 1153번] 두 수의 대소 비교 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1153 두 수의 대소 비교 두 정수가 입력된다. 두 정수의 크기를 비교하여 왼쪽 수가 크면 > 를 출력, 오른쪽 수가 크면 b ? '>' : (a == b ? '=' : ''를 출력한다. 하지만 a > b가 거짓이라면 다시 삼항 연산을 수행한다. a > b가 거짓인 경우는 a == b 이거나 a < b이므로 a == b에 대해서 삼항 연산을 수행해서 참이면 '='를, 아니라면 ' 2020. 11. 12.
[코드업 1125번] 8진수 16진수 변환 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://codeup.kr/problem.php?id=1125 8진수 16진수 변환 10진수 정수를 입력받아 8진수와 16진수로 출력한다. codeup.kr [해답 코드 및 설명] #include int main() { int n; scanf("%d", &n); printf("%o %X", n, n); return 0; } 이 문제를 풀기 전에 알아야 하는 것은 서식 지정자이다. %o는 정수를 8진수로 표현하고 %x는 16진수 소문자, %X는 16진수 대문자를 표현한다. 여기서 16진수의 경우 대문자로 출력하라고 했으니 %X를 사용한다. 위와 같이 "%o %X"로 출력함으로써 결과적으로 정수를 입력받아 8진수와 16진수로 각각 출력하는 해답이 되었다. 2020. 11. 12.
[백준BOJ 1152번] 단어의 개수 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net [해답 코드 및 설명] #include int main() { int bc, c, wc=0; c=getchar(); bc=c; while((c=getchar())!='\0'&&c!='\n') { if(c==' ')wc++; bc=c; } if(bc==' ')wc--; printf("%d", wc+1); } 이 문제에서 가장 핵심이 되는 포인트는 띄어.. 2020. 11. 11.
[백준BOJ 1008번] A/B 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://www.acmicpc.net/problem/1008 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net [해답 코드 및 설명] #include int main() { double a,b; scanf("%lf %lf",&a,&b); printf("%.9lf", a/b); return 0; } A+B, A-B 문제와 유사하게 2개의 값을 입력 받아 먼저 입력 받은 수를 뒤에 입력 받은 수로 나눈 결과를 출력하면 된다. 단 절대오차, 상대오차를 10^-9 이하로 하라는 조건이 있었기에 float 형이 아닌 double 형을 사용하고 소수점 아래 9자리까지 출력해주었다. 2020. 11. 11.
[백준BOJ 1001번] A-B 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net [해답 코드 및 설명] #include int main() { int a,b; scanf("%d %d",&a,&b); printf("%d", a-b); return 0; } 이 문제는 이전 번호(1000번)의 문제 "A+B"의 문제와 매우 유사하다. A+B의 문제에서 +를 -로 만들면 A-B문제의 해답이 되니 말이다. 그래도 설명하자면 두 변수 a와 b에 대해서 scanf() 함수를 통해 값을 입력받아서 먼저 입력 받은 a에 b를 뺀 값을 printf() 함수를 통해 출력.. 2020. 11. 11.
[C언어] 표준 입출력 - printf()와 scanf() 이 글에서는 이전 글에서 미처 살펴보지 못한 채 계속 사용하고 있던 printf()함수와 scanf()함수에 대해서 살펴보려고 한다. 먼저 printf()함수와 scanf()함수를 사용하기 전에 반드시 상단에 작성하는 코드 한 줄에 대해 언급하고 넘어가겠다. #include stdio.h라는 헤더 파일은 printf()함수와 scanf()함수에 대한 정의를 가지고 있는 헤더 파일로 stdio는 standard input output 의 약자로 표준 입출력에 대한 모든 내용을 포함하고 있는 헤더파일이다. 이 헤더파일 내에는 printf()함수와 scanf() 함수 외에 표준 입출력, 출력과 입력을 할 수 있는 많은 함수와 관련 변수들이 있지만 여기서는 가장 많이 사용되는 두 가지 함수, printf()함수.. 2020. 11. 10.
[백준BOJ 1000번] A+B 해설 [문제 내용] 아래 링크로 설명을 대신한다. https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net [해답 코드 및 설명] #include int main() { int a,b; scanf("%d %d",&a,&b); printf("%d", a+b); return 0; } 매우 간단한 코드라 사실 설명할 게 거의 없다. 변수 a,b에 값을 입력 받아 이 두 변수의 값을 더한 값을 출력한다. 2020. 11. 10.
[C언어] 배열의 기초 - 여러개의 자료를 묶어서 관리하려면? [배열의 기초 - 여러개의 자료를 묶어서 관리하려면?] 오늘 글에서는 배열에 대해서 살펴볼 것이다. 배열에 대해서 이야기 하기 전에 한가지 이야기할 것이 있는데 언어에서 제공하는 기능, 문법들은 필요하기 때문에 만들어 진 것이며 가장 기본적인 문법들은 모든 프로그램의 가장 기본이 되며 가장 많이 사용된다는 것이다. 그렇기 때문에 가장 기본적인 문법들을 이해하는 것이 중요하며 기계적으로 사용하는 것이 아니라 왜 필요한 지에 대해서 생각하고 이해하면서 사용하는 것이 중요하다. 그래야 기계적으로 코드를 짜는 것에서 벗어나 재미있게 코드를 짤 수 있다. 그러면 먼저 배열이 왜 필요한 지에 대해서 생각해보자. 주목할 것은 우리가 일상을 살다보면 많은 것들을 보게 되는데 여기서 대부분의 것들은 어떠한 집합 아래 속.. 2020. 4. 30.
반응형