얍!

개발 관련 기록하고 있습니다.

기타 공부/코딩 테스트

[코딩테스트] 백준 24313번: 알고리즘 수업 - 점근적 표기 1

dev.jelee 2026. 1. 3. 23:38

# 문제

주소: https://www.acmicpc.net/problem/24313


# 코드

public class BOJ24313 {
  public static void main(String[] args) throws IOException {
    
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // 입력 3가지
    String a1a0[] = br.readLine().split(" ");
    int a1 = Integer.parseInt(a1a0[0]);
    int a0 = Integer.parseInt(a1a0[1]);
    int c = Integer.parseInt(br.readLine());
    int n0 = Integer.parseInt(br.readLine());

    // 계산 & 출력
    // n >= n0 성립도 시켜줘야한다.
    for (int n = n0; n <= 100; n++) {
      int fn = (a1*n) + a0;
      int gn = c * n;

      if (fn > gn) {
        System.out.println(0);
        return;
      }
    }
    
    System.out.println(1);
  }
}

# 메모

  • 처음에 fn <= gn 조건으로만 따져서 1, 0 출력하도록 했는데 틀렸다고 했다.
  • 도무지 이해가 안 가서 gpt에게 물어보니 모든 n >= n0 에 대하여 이 부분에 대하여 성립하는 조건이 없다고 했다.
  • 그래서 for문으로 반복을 하는데, 조건식에는 int n을 n0; 으로 정하고 n은 n0부터 쭉 증가하지만 n0이 1이상 100이하여서 100 이하로 조건을 작성했다.