백준(36)
-
[ 백준 10871번 ] 더하기 사이클
백준 10871번 / 4단계 / 더하기 사이클 문제 풀이 1. 십의 자리 변수 a, 일의 자리 변수 b, 새로운 일의 자리 변수 c, 원래 값 비교를 위한 hub변수, cycle 변수 선언 2. 변수 a는 정수형 변수이기 때문에 변수 hub를 10으로 나누면 몫만 저장이 된다. ex) 26 / 10 = 2 a = 2 3. 변수 b는 나머지 연산자를 이용해 변수 hub를 10으로 나눈 나머지 값이 저장이 된다. ex) 26 % 10 = 6 b = 6 4. 변수 c는 변수 a와 변수 b의 저장된 값을 더한 뒤 나머지 연산자를 이용해 새로운 일의 자리 수를 만든다 ex) a(2) + b(6) = 8 % 10 c = 8 5. 십의 자리 변수 a는 일의 자리 변수 b의 값으로 바뀌고 일의 자리 변수 b는 새로운 ..
2021.11.08 -
[ 백준 10871번 ] X보다 작은 수
백준 10871번 / 3단계 / X보다 작은 수 문제 풀이 1. 반복문과 if문으로 푸는 문제이다. 2. 입력 첫째 줄 첫 번째 N은 수열 N개를 받는 것이고 두 번째 X는 비교 숫자를 받는 것이다. 3. 첫 번째 반복문은 숫자를 입력받고 그 숫자가 비교 숫자 X보다 작으면 그 숫자를 공백으로 구분해서 출력한다. 코드 #include int main() { int n, x, i; int data; scanf("%d %d", &n, &x); for ( i = 0; i < n; i++ ) { scanf("%d", &data); if ( data < x ) { printf("%d ", data); } } }
2021.11.08 -
[ 백준 2439번 ] 별찍기 2
백준 2439번 / 3단계 / 별 찍기 2 별 찍기 1 이랑 다르게 공백을 채워나가야 하는 문제이다. 문제 풀이 1. 첫 번째 반복문은 행 변수 i가 1부터 높이 변수 N 만큼 반복하는 구조로 만들어준다. 2. 두 번째 반복문은 공백 변수 blank는 1부터 높이 변수 n - i 만큼 공백을 찍어주는 반복 구조로 만들어준다. 3. 세 번째 반복문은 별 변수 star를 1부터 행 변수 i 만큼 찍고 마지막으로 개행 문자를 넣어서 다음행으로 넘어간다. ex) 높이가 5라고 입력 공백은 1부터 n(5) - i(1)까지 반복 결과는 공백이 4번찍힌다. 별은 1부터 i(1)까지 반복 결과는 별이 하나 찍힌다 그다음 개행 문자가 출력돼서 다음행으로 출력 이걸 높이만큼 반복을 하면 * -> 공백 4개, 별 1개 **..
2021.11.08 -
[ 백준 2438번 ] 별찍기 1
백준 2438번 / 3단계 / 별 찍기 1 문제 풀이 1. 2중 반복문을 사용해야 한다. 2. 첫 번째 반복문은 출력행을 제어한다. 변수 i가 1부터 입력받은 line 변수까지 반복을 한다 3. 두 번째 반복문은 별이 행마다 하나씩 증가하는 구조로 변수 j가 0부터 변수 i 미만까지 반복을 하면 행마다 1, 2, 3.. 이렇게 찍힌다. 코드 #include int main() { int line; int i, j; scanf("%d", &line); for( i = 1; i
2021.11.08 -
[ 백준 10950번 ] A+B - 3
백준 10950번 / 3단계 / A+B - 3 문제 풀이 1. 백준은 입력 스트림과 출력 스트림이 별개이므로 입력을 받으면서 출력을 해도 상관이 없다. 2. C에서는 0은 거짓 ( false )를 의미하므로 반복할 만큼 반복할 변수(t)를 마이너스 처리해준다. 3. 첫 줄은 변수 a와 변수 b를 입력받는다 두 번째 줄은 a + b를 출력한다. 코드 #include int main() { int a, b, t; scanf("%d", &t); while(t--) { scanf("%d %d\n", &a, &b); printf("%d\n", a + b); } }
2021.11.08 -
[ 백준 8393번 ] 합
백준 8393번 / 3단계 / 합 이 문제는 2가지 방법으로 풀었다. 1. 수식으로 푼 방법 2. 반복문으로 푼 방법 첫 번째 방법 문제 풀이 1. 가우스 공식을 사용했다. ( 1 + 100 = 101 ), ( 2 + 99 = 101 ), ( 3 + 98 = 101 ).... ( 50 + 51 = 101 ) 101 * 100 / 2 = 5050이라는 답이 나온다. 이러한 성질을 이용해 1 + n 을 한 뒤 n번 곱한 후 나누기 2를 해주면 1부터 n 번까지 더한 값이 나온다. 공식 : ( 1 + n ) x n / 2 코드 #include int main() { int n; int sum = 0; scanf("%d", &n); sum = (1 + n) * n / 2; printf("%d\n", sum); ..
2021.11.08