[백준] 19532번: 수학은 비대면강의입니다 - JAVA

2024. 9. 20. 01:12·알고리즘

[작성일: 2023. 10. 13]

 

https://www.acmicpc.net/problem/19532

 

 

풀이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int d = sc.nextInt();
        int e = sc.nextInt();
        int f = sc.nextInt();

        int x = 0, y = 0;
        for (int i = -999; i <= 999; i++) {
            for (int j = -999; j <= 999; j++) {
                if ((a * i + b * j == c) && (d * i + e * j == f)) {
                    x = i;
                    y = j;
                }
            }
        }
        System.out.println(x + " " + y);
    }
}

 

연립방정식은 둘 이상의 방정식이 동시에 성립되어야 하는 방정식을 의미한다. 

x + y = 5, x - y = 1

가 주어졌다면 두 방정식을 만족하는 x는 3, y는 2이다.

 

이 문제를 보자마자 for문을 사용해서 풀어야겠다 생각하고 풀었는데 정답이었다.

그런데 x와 y를 찾는 공식을 안다면 for문을 사용하지 않아도 이 문제를 풀 수 있다고 한다.

 

우선 주어진 연립 방정식을 행렬로 나타낸다면 아래와 같다.

 

이 때,

a  b

d  e 의 행렬(D)는 ae - bd가 된다.

 

따라서 x는 아래와 같다.

 

 

y도 똑같이 구할 수 있다. 이걸 코드로 짜면 아래처럼 나온다.

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int d = sc.nextInt();
        int e = sc.nextInt();
        int f = sc.nextInt();

        int x = (c * e - b * f) / (a * e - b * d);
        int y = (a * f - c * d) / (a * e - b * d);
        System.out.println(x + " " + y);
    }
}

 

저작자표시 비영리 변경금지 (새창열림)
'알고리즘' 카테고리의 다른 글
  • [백준] 10989번: 수 정렬하기 3 - JAVA
  • [백준] 2751번: 수 정렬하기 2 - JAVA
  • [백준] 2231번: 분해합 - JAVA
  • [백준] 2798번: 블랙잭 - JAVA
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    html
    spring
    jsp
    DB
    의존성주입
    백준
    JPA
    생성자
    Security
    객체
    다형성
    변수
    최주호
    성능최적화
    HTTP
    데이터베이스
    자바
    프로그래머스
    Swift
    Java
    javascript
    김영한
    알고리즘
    게시판만들기
    Spring Security
    MVC
    sql
    자바스크립트
    Database
    스프링
  • hELLO· Designed By정상우.v4.10.0
뚜비
[백준] 19532번: 수학은 비대면강의입니다 - JAVA
상단으로

티스토리툴바