[백준 문제 풀이] 27323번 직사각형

Junu Kim·2025년 7월 18일
0
post-thumbnail

[27323] 직사각형

난이도: ★☆☆☆☆ • solved on: 2025-07-18


문제 요약

  • 문제 유형: 구현, 수학
  • 요구사항: 두 정수 AA, BB가 주어졌을 때, 직사각형의 넓이 ( A * B ) 를 출력해야 한다.

사용 개념

  1. 자료구조

    • 없음
  2. 알고리즘/기법

    • 단순 곱셈 연산
    • 입출력 처리 (BufferedReader 사용)
  3. 핵심 키워드

    • 직사각형 넓이
    • 정수 입력
    • 출력

풀이 아이디어

  1. 문제 분해
    • 입력: 두 줄에 걸쳐 정수 A, B가 각각 주어진다.
    • 처리: A와 B의 곱을 계산한다.
    • 출력: 곱한 결과를 출력한다.
  2. 핵심 로직 흐름
    1. BufferedReader로 정수 A, B를 입력받음
    2. A × B 계산
    3. 결과 출력
  3. 예외 처리
    • 없음 — 문제 조건에 따라 항상 양의 정수가 주어짐

코드

import java.io.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.valueOf(br.readLine());
        int b = Integer.valueOf(br.readLine());
        System.out.print(a * b);
    }
}

시간·공간 복잡도

  • 시간 복잡도: O(1) — 상수 시간 연산만 수행
  • 공간 복잡도: O(1) — 별도 저장 구조 없음

어려웠던 점

  • 없음 — 매우 단순한 문제

배운 점 및 팁

  • BufferedReaderScanner보다 빠른 입력 처리에 유리하다.
  • Integer.valueOf(String)은 문자열을 정수로 바꿀 수 있는 간단한 방법이다.
  • 출력을 수천줄을 해야할 때는 BufferedWriter와 flush 기능을 활용할 수 있다.

    BufferedWriter + flush()

    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    bw.write(String.valueOf(a * b));
    bw.flush();
    • 버퍼에 데이터를 모아 한 번에 출력하기 때문에 반복 출력에서 훨씬 빠름
    • 이 문제처럼 출력이 한 번만 필요한 경우, 큰 차이는 없음 (미세한 차이)

    상황입력출력사용시 기대 효과
    지금 문제처럼 한 줄 출력2줄1줄거의 차이 없음
    1,000,000줄 출력많음많음BufferedWriter 필수 수준
    반복 연산 중 출력반복 구조 속 출력많음StringBuilder 또는 BufferedWriter 사용 필요

참고 및 링크


추가 연습 문제

  • 비슷한 유형 (GPT 추천) :

  • 확장 문제 (GPT 추천) :

    • 직사각형 둘레 구하기
    • 정수 A, B가 매우 큰 경우 (BigInteger 사용)
profile
생각이 현실이 될 수 있도록 노력하는 중입니다.

0개의 댓글