전체 글
[백준] 2588번: 곱셈 [C]
2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 이 문제를 풀려면 세 자리 자연수의 1의 자리, 10의 자리, 100의 자리 수를 구하는 방법을 알아야 한다. 예를 들어 세 자리 자연수 123이 있다고 치자. 123의 일의 자리 수는 3이다. 123을 10으로 나누면 몫은 12, 나머지는 3이 된다. 우리가 구하는 수는 나머지와 같음을 알 수 있다. 즉, 123 % 10 을 하면 123의 일의 자리 3을 구할 수 있다. 123의 십의 자리 수는 2이다. 123을 100으로 나누면 몫은 1, 나머지는 23이 된다. 123을 100으로 나눈 나머지 23을 다시 10으로 나누면 몫은 2, 나머지는 3이 된다. 우리가 구..
[백준] 10430번: 나머지 [C]
10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 정수 3개를 입력받아 변수 A, B, C에 저장한 후 (A+B)%C ((A%C) + (B%C))%C (A×B)%C는 ((A%C) (B%C))%C 위의 연산의 결과를 순서대로 출력하면 된다. #include int main(void) { int A, B, C; // 1. 입력받을 변수 3개 선언 scanf("%d %d %d", &A, &B, &C); // 2. 정수 3개를 입력받아 A, B, C에 저장 printf("%d\n",(A + B) % C); // 3-1. (A+B)%C 의 결과값 출력 printf("%d\n", ((A % C) + (B % C)) % C); //..
[백준] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 [C]
3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 각각의 피스에 올바른 세트일 때의 피스 개수에서 현재 동혁이가 찾은 피스의 개수를 빼면 몇 개를 더하거나 빼야 올바른 세트가 되는지 구할 수 있다. 입력할 때, 킹, 퀸, 룩, 비숍, 나이트, 폰 순서대로 개수가 입력되므로, 이 순서대로 개수를 저장하는 배열을 만들어서 배열의 요소를 인덱스로 접근해서 값을 구하면 된다. 먼저, 올바른 세트일 때의 킹, 퀸, 룩, 비숍, 나이트, 폰 피스의 개수를 순서대로 저장하는 배열 set를 초기화한다. 여기서 배열의 크기는 6이 된다. (킹, 퀸,..
[백준] 18108번: 1998년생인 내가 태국에서는 2541년생?! [C]
18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net 예제 입력1 을 보면 2541을 입력하면 1998이 출력된다. 입력받은 불기 연도와 출력할 서기연도는 2541 - 1998 = 543 즉, 543년 차이가 난다는 것이다. 출력된 1998은 2541 - 543 의 연산 결과라고 할 수 있다. 따라서, y를 입력받은 후, y - 543의 결과값을 출력해주면 된다. #include int main(void) { int y; // 1. 정수 변수 y 선언 sca..
[백준] 10926번: ??! [C / C++]
10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net C언어 아이디는 문자이므로 char 배열을 쓴다. 아이디의 길이는 50자를 넘지 않는다고 했으므로 char 배열의 크기는 50이다. 입출력에 사용되는 서식문자는 %s를 사용한다. 여기서 주의해야할 점은 C언어의 경우 '삼중자' 라는 것이 있다는 점이다. 삼중자를 모른다면 아래 더보기 버튼을 클릭해서 접은글을 확인해보도록... 더보기 삼중자에 대한 자세한 설명은 아래 링크에서 확인할 수 있다. https://learn.microsoft.com/ko-kr/cpp/c-..
[백준] 10869번: 사칙연산 [C]
10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 정수 2개를 입력받아 변수 A와 B에 저장한 후 +, -, *, /, % 연산을 해서 출력하면 된다. #include int main(void) { int A, B; // 1. 입력 받을 변수 2개 선언 scanf("%d %d", &A, &B); // 2. 정수 2개를 입력받아 A와 B에 저장 printf("%d\n", A + B); // 3-1. A+B의 결과값 출력 printf("%d\n", A - B); // 3-2. A-B의 결과값 출력 printf("%d\n", A * B); // 3-3. A*B의 결과값 출력 pr..
[백준] 1008번 A/B [C]
1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 기본적으로는 [1000번 A+B], [1001번 A-B], [10998번 A×B] 와 같은 방식이다. 다만 예제를 보면 나눗셈을 한 정수부분이 아니라 실수를 출력을 해야한다. 정수를 입력받아서 실수 형태로 출력해야한다는 것이다. 따라서, 입력 받을 때는 %d를 사용하고, 출력할 때는 %f를 사용해야 한다. 여기서 유의해야하는 것은 10-9 이하의 오차를 허용한다고 했으므로, 적어도 소수점 아래 9자리까지는 실제 정답과 똑같아야한다는 것이다. 따라서, 소수점 이하 정밀도가 6자리인 float 자료형은 사용할 수 없고, 소수점 이하 정밀도가 15자리인 double 자료형이 적합하다. ..
[백준] 10998번 A×B [C]
10998번: A×B 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. www.acmicpc.net A와 B 값을 입력받은 후, A×B 값을 출력하면 된다. 입력받으려면 입력을 받아 저장할 변수를 먼저 선언해야 한다. 그 후 값 2개를 입력받고, 출력할 때는 A×B의 결과값을 출력한다. #include int main(void) { int A, B; // 1. 입력 받을 변수 2개 선언 scanf("%d %d", &A, &B); // 2. 정수 2개를 입력받아 A와 B에 저장 printf("%d\n", A * B); // 3. A*B의 결과값 출력 (정수의 덧셈 결과는 정수이므로 서식문자는 %d) return 0; }
[백준] 1001번 A-B [C]
1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net A와 B 값을 입력받은 후, A-B 값을 출력하면 된다. 입력받으려면 입력을 받아 저장할 변수를 먼저 선언해야 한다. 그 후 값 2개를 입력받고, 출력할 때는 A-B의 결과값을 출력한다. #include int main(void) { int A, B; // 1. 입력 받을 변수 2개 선언 scanf("%d %d", &A, &B); // 2. 정수 2개를 입력받아 A와 B에 저장 printf("%d\n", A - B); // 3. A-B의 결과값 출력 // (정수의 덧셈 결과는 정수이므로 서식문자는 %d) return 0; }