본문 바로가기

Study/Coding Test

[baekjoon] A/B(JavaScript)

📘 오늘의 코딩테스트 - A/B(JavaScript)

🔢 문제 번호: 1008번

🔗 문제 링크: 백준 - A/B

 

 

 

 

🧠 문제 요약

  • 두 정수 A와 B를 입력받은 다음, A를 B로 나눈 값을 출력하는 문제
  • 출력은 소수점 아래 10자리까지 정확하게 표현해야 한다.
    • 입력: A, B( 0 < A, B < 10)
    • 출력: A를 B로 나눈 값을 소수점 10자리까지 출력

 

 

 

✅ 실행 예시 및 결과

입력: 1 3  
출력: 0.3333333333

 

 

 

✍️ 내 풀이

  • require('fs').readFileSync('/dev/stdin').toString()로 입력 처리
  • split()으로 A와 B 분리 후 parseInt() 처리

 

 

 

💻 내가 푼 코드

const input = require('fs').readFileSync('/dev/stdin').toString().split(' ');

const A = parseInt(input[0]);
const B = parseInt(input[1]);

console.log(A/B)

 

 

 

📎 남이 푼 코드

// 백준 1등 코드
s=require('fs').readFileSync('/dev/stdin')+'';console.log(s[0]/s[2])
  • s=require('fs').readFileSync('/dev/stdin')+'': 입력을 문자열로 읽어서 변수 s에 저장
  • s[0]: 문자열의 첫 번째 문자
  • s[1]: 문자열의 세 번째 문자
  • JavaScript의 암묵적 타입 변환을 이용해 문자를 숫자로 자동 변환하여 나눗셈 수행
  • 변수 선언을 최소화하여 메모리 사용 절약!!
  • split(), parseInt() 과정을 생략하여 실행 시간 단축
  • 한 줄로 모든 처리를 완료하여 코드 길이 최소화
  • "A B" 형태의 한 자리 수만 처리 가능(입력 형식에 매우 의존적)
  • 두 자리 수나 다른 형식의 입력에서는 오작동(확장성 부족)
  • 오류 발생 시 원인 파악이 힘듦(디버깅 어려움)

 

 

 

🔍 회고 & 배운 점

  • 1등 코드를 보고 "코드 골프"라는 개념을 처음 알게 되었다
  • 짧다고 항상 좋은 코드는 아니구나.....
  • javascript의 암묵적 타입변환은 잘 생각 못했는데.... 이건 멋져
  • 나는 기본에 충실하게 코드짜기!!!
반응형