본문 바로가기

C, C++/Problem Solving10

[백준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.
[백준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.
반응형