2학기 2주차_알고리즘( 백준19532번 : 수학은 비대면강의입니다. )

2023. 9. 24. 02:09Algorithm ( p & swlug )/Baekjoon

[ 문제 ]

 

그냥 수학문제로 풀면 잘 풀 수 있지만, 이걸 코드를 짜려는 어떤식으로 짜야할지..

우선 ax+by = c 와 dx+ey = f가 같다고 두고 두 식을 빼서 x와 y의 값을 구해야 하고 출력이 되면 답이다.

어떤 식으로 짜야할까? 일단 for로 반복을 해야할 거 같고, if로 조건을 둬야할것같다.

 

예를 들어 for 이 999만큼 반복될 수 있다고 가정하고, if (a==d || d==e)  만약에 a와 d가 같거나 d와 e가 같을때 

result 결과값은  ax+by-c= dx+ey-f 라고 하고 풀어볼까..?

음 아닌거 같다. 

이렇게하면 코드는 안돌아갈 것 같다.

 

도움을 받아보자.

 

#pragma warning(disable:4996)
#include <stdio.h>
 
int main() {
    int x1, y1, z1, x2, y2, z2;
    int i, j;
 
    scanf("%d %d %d %d %d %d", &x1, &y1, &z1, &x2, &y2, &z2);
 
    for (i = -999; i <= 999; i++) {
        for (j = -999; j <= 999; j++) {
            if (x1 * i + y1 * j == z1 && x2 * i + y2 * j == z2) {
                printf("%d %d\n", i, j);
                return 0;
            }
        }
    }
 
    return 0;
    }

 

일단 반복문을 사용하는 것과 if를 사용하는 것까지만 맞췄는데, 이중반복을 쓰네?

식이 두가지라서 이중 반복문을 쓰는 것 같다. 첫줄에 i와 j 값을 각각 곱해주고 그값이 z1과 같고, z2와 같으면 

결과값이 도출되게 되어있다.

 

오히려 첫번째문제보다도 까다로운 느낌이다.

이 문제는 시간을 두고 조금 더 고민을 해봐야할 것같다.

 

 

일단 두번째 문제도 끝 ( 추후에 추가 공부해야함 )

 

 

#pragma warning(disable:4996) 을 처음봐서 찾아봤다.

권장되지 않는 함수 사용에 대한 경고를 방지하고자 쓰인거 같다.

 

[ 참고 학습 자료 ]

 

#pragma warning(disable : 4996) (tistory.com)

 

#pragma warning(disable : 4996)

* 경고 C4996은 권장되지 않는 함수 사용에 관한 경고입니다. scanf는, MS가 지정한 잘못 쓰면 안전하지 않은 일이 발생할 수도 있는 함수들 중 하나입니다.그러나, 문제에서처럼 %d %f 같은 고정폭 변

puffinknight.tistory.com

백준 알고리즘 19532번 수학은 비대면강의입니다 (C언어) (tistory.com)

 

백준 알고리즘 19532번 수학은 비대면강의입니다 (C언어)

브론즈Ⅱ https://www.acmicpc.net/problem/19532 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식

bakjoon-coding.tistory.com