-
[Python] BOJ 19532 수학은 비대면강의입니다코딩테스트/백준 2025. 12. 4. 11:40
1. 요구사항
- 시간 제한: 1초
- 메모리 제한 1024MB
- 주어진 수로 x, y 값을 구해라.
2. 설계
- 6개의 문자값을 받는다.
- 이중 for문으로 x와 y값을 찾아낸다. ( 시간복잡도의 경우 O(n**2) 이겠지만, 모든 연산을 다해도 4,000,000 안전 )
3. 구현
import sys input = lambda : sys.stdin.readline().rstrip() a, b, c, d, e, f = map(int, input().split()) for x in range(-999, 1000): for y in range(-999, 1000): if (a * x + b * y == c) and (d * x + e* y == f): print(x, y) break- 위와 같은 경우는 x, y 값을 찾아 print 해도 y루프만 종료되고 x 루프는 계속 돈다.
- 두 가지 해결 방법이 있다.
- break 대신 exit() 사용해 프로그램을 종료시킨다.
- flag 변수로 제어한다.
found = False for x in range(-999, 1000): for y in range(-999, 1000): if (a * x + b * y == c) and (d * x + e* y == f): print(x, y) found =True break if found: break더보기왜 flage 변수는 바깥에 있어야 할까?
두 개의 for문 바깥에서 한 번만 선언한 함수. 즉, found 값이 두 루프 전체에 공유
'코딩테스트 > 백준' 카테고리의 다른 글
[Python] BOJ 15596 정수 N개의 합 (0) 2025.04.22 [Python] BOJ 2562 최댓값 (6) 2025.04.22 [Python] BOJ 2739 구구단 (0) 2025.04.22 [Python] BOJ 2798 블랙잭 (1) 2025.03.26 [Python] BOJ 2231 분해합 (0) 2025.03.26