본문 바로가기
프론트엔드로 가는 길/프로그래머스

08.두 수의 나눗셈 & 양꼬치

by woody-j 2022. 11. 4.

※문제설명

정수 num1과 num2가 매개변수로 주어질 때, 
num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

 

My Solution

const solution = (num1,num2)=>parseInt(num1/num2*1000)

 

더보기
parseInt를 통해 정수만 출력

 

 

부족한 점 다른 풀이를 봤을 때 math 메소드를 사용한 사람이 많았다. math 메소드를 생각할 수 있도록하자
개선 방안  

 


 

Different Approach

const solution = (num1, num2) => Math.floor(num1 / num2 * 1000)
느낀 점 이번 문제는 30초만 에 풀었다! 맨 처음 코딩테스트(나머지 구하기)는 30분 정도 걸린 것 같은데 지금은 그래도 조금은 기본이 생기지않았나!? 하는 생각이 든다. 지금 문제들은 정말 기본 문제지만, 기본 문제라도 다양한 접근법을 모두 보면서 내가 스스로 다양하게 접근해볼 수 있는 능력을 길러야겠다. 

※문제설명

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다.
양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다.정수 n과 k가 매개변수로 주어졌을 때,
양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.

My Solution

 

function solution(n, k) {
return 2000(6n + k - n/10);}

Cannot mix BigInt and other types, use explicit conversions

BigInt와 다른 유형을 혼합할 수 없습니다. 명시적 변환을 사용하십시오.

 

 

const solution =(n,k)=>12000 * n + 2000*(k-Math.floor(n/10))
더보기

math.floor를 사용하여 서비스 받은 음료수 수를 구함

 

부족한 점 처음에  그저 수학공식처럼 식을 작성했더니 오류가 떴다. 이유는 bigint와 다른 유형을 혼합 할 수 없어이다. 나는 그저 내가 생각하는 식을 코드로 작성하면 컴퓨터도 이해를 할 줄 알았다. 하지만 생각했던 것과 달리 컴퓨터는 내 생각방식과 차이가 있다는 것을 알게되었고, 컴퓨터의 사고방식으로 코드를 접근해야한다는 것을 깨닳았다. 
개선 방안 다양한 오류를 접해보면서 컴퓨터가 생각하는 식과 내가 생각하는 식에 대한 차이를 마주하면 어떤 코드가 컴퓨터가 인식을 하지 못하는 지에 대해서 많이 알아가야한다. 

 


 

Different Approach

function solution(n, k) {
    k-=~~(n/10);
    if (k < 0) k = 0;
    return n*12000+k*2000;
}

double tilde(~~)

1. Math.floor() 대신 사용될 수 있다.

2. undefined 또는 null을 0으로 변환할 때 사용될 수 있다.

 

느낀 점 컴퓨터 사고방식은 정말 내가 이해하기는 어렵지만 이해하면 할 수록 신기하고 재밌다

 

 

'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글

10. 변수, 사칙연산 실력향상 과제 (번외)  (0) 2022.11.06
09. 369게임 (번외)  (0) 2022.11.05
07. 배열의 평균값  (0) 2022.11.03
06. 짝수의 합  (0) 2022.11.02
05. 각도기  (0) 2022.10.30