[ASAC 웹풀스택 개발자과정] 02. 코딩테스트 백준 브론즈탈출을 목표로 간다
본문 바로가기

컴퓨터공부/ASAC 웹풀스택

[ASAC 웹풀스택 개발자과정] 02. 코딩테스트 백준 브론즈탈출을 목표로 간다

by Life & study 2023. 7. 27.
반응형

설리번의 개발일지

 


제목 작성일 속성 주차 공부내용 티스토리주소
[ASAC 웹풀스택 개발자과정] 02. 코딩테스트 백준 브론즈탈출을 목표로 간다(1) 알고리즘 1주차 1. [ASAC 웹풀스택 개발자과정] 02. 코딩테스트 백준 브론즈탈출을 목표로 간다(1) 2. [백준 코딩테스트 문제 ] 9498번 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 3. [백준 코딩테스트 문제] 14681번 제n사분면 구하기. 4. [백준 코딩테스트 문제] 자바스크립트 코드 백준 읽기 코드 5. [백준 코딩테스트 문제] 2753번 윤년구하기 6. [백준 코딩테스트 문제] 1712번 손익분기점 구하기 https://comingsoon1004.tistory.com/entry/ASAC-웹풀스택-개발자과정-02-코딩테스트-백준-브론즈탈출을-목표로-간다
제목   알고리즘      

 

 

[ASAC 웹풀스택 개발자과정] 02. 코딩테스트 백준 브론즈탈출을 목표로 간다(2)

 

[백준 코딩테스트 문제 ] 9498번
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

 

[백준 코딩테스트 문제 ] 9498번
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

 

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

let A = parseInt(inputData[0]);

if (A >= 90 && A <= 100) {
  console.log("A");
} else if (A >= 80 && A <= 89) {
  console.log("B");
} else if (A >= 70 && A <= 79) {
  console.log("C");
} else if (A >= 60 && A <= 69) {
  console.log("D");
} else {
  console.log("F");
}

 

[백준 코딩테스트 문제]  14681번 제 n사분면 구하기.

 

문제

 

 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제 n사분면"이라는 뜻이다.

예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.

점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.

 

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

let A = parseInt(inputData[0]);

 

기존 백준 코드 읽어오는거에서 오류가 나서 

오류의 내용: 런타임 에러 (EACCES)

// const fs = require('fs');
// const inputData = fs.readFileSync("/dev/stdin").toString().split("\n");

 

오류의 내용: 런타임 에러 (EACCES)를 벗어나는방법, 올바른 수정법  fs.readFileSync(0)으로 수정한다.

const fs = require('fs');

const [x, y] = fs.readFileSync(0).toString().trim().split('\n').map(Number);

 

정답 코드

const fs = require('fs');

const [x, y] = fs.readFileSync(0).toString().trim().split('\n').map(Number);

if (-1000 <= x && x <= 1000 && x !== 0 && -1000 <= y && y <= 1000 && y !== 0) {
    if (x > 0 && y > 0) {
        console.log(1);
    } else if (x < 0 && y > 0) {
        console.log(2);
    } else if (x < 0 && y < 0) {
        console.log(3);
    } else if (x > 0 && y < 0) {
        console.log(4);
    }
} else {
    console.log("back home");
}

 

[백준 코딩테스트 문제]  자바스크립트 코드 백준 읽기 코드

 

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

let A = parseInt(inputData[0]);

 

 

[백준 코딩테스트 문제] 2753번 윤년 구하기

2753번 문제


연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.

윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

 

입력
첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.

출력
첫째 줄에 윤년이면 1, 아니면 0을 출력한다.

예제 입력 1 
2000
예제 출력 1 
1
예제 입력 2 
1999
예제 출력 2 
0

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim();
const year = Number(input);


//연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
//첫째 줄에 윤년이면 1, 아니면 0을 출력한다.

function oneortwo(year) {
  if (yunyear(year)) {
    console.log(1);
  } else {
    console.log(0);
  }
}

function yunyear(year) {
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
      
	  //윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

// year % 100 !== 0을 사용하여 "year가 100의 배수가 아닐 때"를 나타냅니다. 
// !== 연산자는 두 값이 다를 경우 true를 반환하므로
// !== 연산자는 두 값이 다를 경우 true를 반환하므로, 이 경우 100의 배수가 아닐 때 true를 반환합니다. 

}

function checkYear(year) {
  return year >= 1 && year <= 4000;
  //첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
}

if (checkYear(year)) {
  oneortwo(year);
} else {
  console.log("연도는 1 이상 4000 이하의 자연수여야 합니다.");
}

 

 

[백준 코딩테스트 문제]  1712번 손익분기점 구하기

 

문제
월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다.

예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만 원이 들며, 열 대 생산하는 데는 총 1,700만 원이 든다.

노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총수입(판매비용)이 총비용(=고정비용+가변비용) 보다 많아지게 된다. 최초로 총수입이 총비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.

A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.

입력
첫째 줄에 A, B, C가 빈칸을 사이에 두고 순서대로 주어진다. A, B, C는 21억 이하의 자연수이다.

출력
첫 번째 줄에 손익분기점 즉 최초로 이익이 발생하는 판매량을 출력한다. 손익분기점이 존재하지 않으면 -1을 출력한다.

 

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
const A1 = Number(input[0]); // 고정비용
const B1 = Number(input[1]); // 가변비용
const C1 = Number(input[2]); // 노트북 가격

function breakEvenPoint(A1, B1, C1) {
  if (C1 <= B1) return -1; // 손익분기점이 존재하지 않음
  
  const breakEvenPoint = Math.floor(A1 / (C1 - B1)) + 1;
  return breakEvenPoint;
}

console.log(breakEvenPoint(A1, B1, C1));

 

반응형

댓글