본문 바로가기

반응형

Algorithm/BaekJoon

(8)
[BaekJoon] 백준 2577번 숫자의 개수 - C 언어 https://www.acmicpc.net/problem/2577 문제 분석 세 개의 수를 곱해서 만든 수를 구성하는 숫자 (0 ~ 9)가 각각 몇 개씩 있는지 알아내야 한다. 입력란을 보면 곱하는 세 개의 수는 모두 세 자리 숫자임을 알 수 있고, 그 세 개의 수는 각 줄에 하나씩 입력을 받아야 하므로 간단하게 scanf 함수를 써서 입력받는다. 출력란을 보면 0 ~ 9를 순서대로 개행을 하여 곱셈해서 만든 수에 몇 개씩 존재하는지 나타내라 했다. 0 ~ 9를 순서대로 나타내는 것이 배열의 index 순서와 같다는 것에 착안하여, 배열의 0 index에는 0의 개수를, 1 index에는 1의 개수를 저장하는 방법으로 9번까지 개수를 저장하고 출력하면 된다. 배열의 index 개수 : 숫자 0 ~ 9의 ..
[BaekJoon] 백준 14681번 사분면 고르기 - C 언어 내 풀이 → 사분면에 속하지 않는 x축과 y축에 있는 점들과 원점을 예외처리 해준 후, 각 사분면의 범위를 설정해서 조건문으로 코드를 짰다. 그리고 코드를 짤 때 scanf 함수로 수를 입력받을 때 , 문제에서 보면 개행이 이루어지면서 입력을 받길래 scanf함수를 두 번 사용하였는데 아래의 풀이를 보면 scanf함수를 한 번 사용하였다. 그래서 아래 코드를 실행해 보니 아무 문제없이 잘 실행 되었다. 결론, scanf 함수는 입력받을 수의 개수만 맞다면 띄어쓰기이든 개행이든 상관없이 입력을 다 받아야 다음이 진행되는 것 같다. 다른 사람 풀이 → 삼항연산을 활용해서 문제를 풀었다. 와... 정말 간단하다.
[BaekJoon] 백준 2753번 윤년 - C 언어 내 풀이 → 문제에서 주어진 조건만 잘 정리해서 if조건문으로 잘 작성하면 되는 문제이다. 윤년의 조건은 4의 배수이면서 100의 배수가 아닐 때, 또는 100의 배수이면서 동시에 400의 배수여야만 윤년이다.
[BaekJoon] 백준 9498번 시험 성적 - C 언어 내 풀이 → if else ~ if else ~ 구문을 활용하여 성적의 범위를 설정해주고 해당하는 점수의 등급을 출력하는 프로그램이다. 다른 사람 풀이 1. → 아직 정확히 설명은 못 하지만, 배열을 이용한 풀이 같다. 입력받은 값을 10으로 나눈 몫을 이용하여, 0 ~ 10의 숫자 중 해당하는 자리의 문자를 출력하는 방식으로 생각된다. 2. → 삼항연산을 활용한 풀이이다. 삼항 연산의 기본 형태는 " 조건식? (참일 때의 값) : (거짓일 때의 값) "이다. 위의 코드와 같이 거짓일 때의 값에 삼항 연산을 넣음으로써 삼항 연산을 중복으로 활용하였다. 3. → 삼항연산과 아스키코드를 활용한 풀이이다. 삼항 연산은 위의 2번에서 설명했다. 아스키코드 부분을 설명하자면, 아스키코드에는 각 문자마다 고유의 십..
[BaekJoon] 백준 1330 두 수 비교하기 - C 언어 풀이
[BaekJoon] 백준 2588 곱셈 - C 언어 풀이 → 첫 번째 풀이를 보면 필요한 자릿수만 남기고 다 빼고 마지막에 자리를 옮기는 어려운 방법으로 문제를 풀었다. 그런데 첫 번째 방식으로 풀어나가는 도중 10행의 a * (b/100)을 할 때 깨달았다. 몫의 나눗셈과 나머지 나눗셈을 이용하면 더 간단하다는 사실을... 허허... 그래서 두 가지 풀이를 다 해봤다... 첫 번째 풀이 #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d\n", a * (b - ((b/10)*10))); printf("%d\n", a * (((b - ((b/100)*100)) - (b - ((b/10)*10))) / 10)); printf("%d\n", a * (b/100)); printf("%d\n",..
[BaekJoon] 백준 10430 나머지 - C 언어 풀이 #include int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%d\n", (a + b) % c); printf("%d\n", ((a % c) + (b % c)) % c); printf("%d\n", (a * b) % c); printf("%d\n", ((a % c) * (b % c)) % c); return 0; }​
[BaekJoon] 백준 1008번 A/B - C 언어 이 문제를 풀기 위해 필요한 개념들 실수 자료형의 표현 가능한 소수점 이하 자릿수 실수형 메모리 크기 표현 가능한 소수점 이하 자릿수 float 4 byte 6 자리 double 8 byte 15 자리 long double 8 byte 15 자리 또는 그 이상 scanf 함수를 사용하여 실수를 입력받을 시 서식 지정자 실수형 서식 지정자 float %f double %lf long double %Lf printf 함수를 사용하여 실수를 출력할 때 서식 지정자 실수형 서식 지정자 float %f double %f long double %lf 형 변환 방법 - 단순히 데이터의 자료형의 형 변환이 필요한 경우 : 형 변환이 필요한 데이터 앞에 괄호를 사용하여 바꿔주면 된다. ex) int data → (flo..

반응형