코딩테스트 60

코딩테스트 풀이 - 피자 나눠 먹기 (3)

무조건 한 조각씩은 먹게 피자를 시키려면 최소 몇 판의 피자를 시켜야 하냐... 아니 코딩테스트 이거 풀다보니까 수학 문제 아니에요? ㅠㅠ 🎈 내가 생각한 방법 1. 조건 : slice / n 의 결과는 1이상 이어야 한다. 2.n / slice 값을 올림한 값을 반환시킨다. 내가 작성한 코드 앗. floor 는 내림이었다. 올림인 ceil 로 바꿔주니 성공하였다. ! ceil 은 천장 floor 은 바닥이라서 올림, 내림이라는 것 기억하자..!!! 소수점 올림, 내림, 반올림, 버림에 대해서는 피자 나눠 먹기 (1) 글에서 해놓았다. https://h2s0.tistory.com/33

코딩테스트 2023.10.22

코딩테스트 풀이 - 배열 두 배 만들기 | map

🎈 내가 생각한 방법 반복문 돌려서 배열의 원소 *2 한 다음 결과값 반환하기 -> 이 방법이 뭔가 이상해서 배열 아이템 대체 등등 찾아보다가 새로운 push pop 등등은 기존 배열을 수정한다는 사실을 떠올렸다. 그래서 그럼 새로운 배열을 만들어내는 애들은 뭐였지..? 하고 찾아보니 map 이 있었다! 그래서 map 을 이용해보았는데,,, 결과는 널널널널... 뭐가 잘못된 것일까 아하.. 쓰는 방법이 틀렸던 것이였다.. ㅎㅎ 일반함수 모양으로 작성해보자면 이러한데, item * 2 앞의 return 을 넣지 않으면 널널널이 나온다. 왜 return 을 두 번 해줘야만 제대로 값이 나오는 것일까?... item * 2 앞의 return 은 answer 이라는 배열으로 반환해주는 거고 return answ..

코딩테스트 2023.10.22

코딩테스트 풀이 - 피자 나눠 먹기(1) | 소수점 올림, 내림, 반올림, 버림 Math.ceil, floor, round, trunc

🎈 내가 생각한 방법 1. 7로 나누기! 7로 나누는 코드만 작성했더니 소수점까지 나왔다. 올림을 해주어야겠다 작성한 코드 🎈 소수점 올림, Math.ceil() 숫자를 올림하여 반환한다. Math.ceil(0.14285714285714285) // 1 Math.ceil(2.142857142857143) // 3 Math.ceil(35.3) // 36 🎈 소수점 내림, Math.floor() 숫자를 내림하여 반환한다. 음수인 경우에 소수점 아래를 내림한 정수를 반환한다. Math.floor(3.75) // 3 Math.floor(95.46456) // 95 Math.floor(-4.2) // -5 Math.floor(-15.8987) // -16 🎈 소수점 반올림, Math.round() 숫자를 반올림하..

코딩테스트 2023.10.13

코딩 테스트 풀이 - 문자열 뒤집기 | split, reverse, join

🎈 내가 생각한 방법 reverse 를 사용해서 뒤집어준다. 작성한 코드 이렇게 작성했더니 오류가 났다. 왜지? 생각하면서 reverse 에 대해 찾아보니 reverse 는 배열의 순서를 뒤집어 주는 것이었다. 그렇다면 1. 문자열 한 글자씩 배열로 만들어준다. 2. reverse 를 사용해 뒤집어준다. 3. 배열을 다시 하나의 단어로 만든다. 방법을 사용해야 한다. 🎈 문자열의 메써드 split 문자열을 구분한 후 분리된 각 문자열로 이루어진 배열을 반환한다. let str = 'hello hi'; // 공백을 기준으로 구분하여 배열로 반환한다. console.log( str.split(' ')); // ['hello', 'hi'] // 한 글자씩 모두 분리한다. console.log( str.spli..

코딩테스트 2023.10.12

코딩 테스트 풀이 - 배열 원소의 길이 | forEach 문, for of 문, map 이용해 풀기

🎈 내가 생각한 방법 1. 반복문을 돌려 배열 요소 각각의 글자 갯수를 구한다. 2. 배열에 넣는다. 작성코드 🎈 배열에 요소를 추가하는 메서드 push : 배열의 맨 뒤에 요소를 하나 추가한다. let array = [1,2,3]; array.push(4); console.log(array) // [1,2,3,4] unshift : 배열의 맨 앞에 요소를 하나 추가한다. let array = [a,b,c]; array.unshift(d); console.log(array) // [a,b,c,d] 배열이름.메써드(추가 할 요소) 다른 방법으로 풀어보기 🎈forEach 문 forEach 구문의 인자로 콜백함수를 등록할 수 있고, 배열의 각 요소들이 반복될 때 콜백 함수가 호출된다. 콜백함수에서 배열요소의 ..

코딩테스트 2023.10.12

코딩테스트 풀이 - 양꼬치 | 논리연산자 || , &&

🎈 내가 생각한 코드 흐름 총 가격 = n * 12000 + k * 2000 하지만 n 이 10 보다 크고, k 값이 1 이상일 때 ( n / 10 의 정수값 ) * 2000 만큼 빼야한다. 작성코드 결과 왜 테스트 1의 값이 다를까.. 생각해보니! 10인분에 음료수 하나이기 때문에, 10인분일때도 포함시켜야한다.! 그래서 10보다 클 때 를 10보다 크거나 같을 때 로 수정해주었더니 통과 ! 혹시 몰라서 음료수를 주문하지 않았을 때의 테스트 케이스를 추가해보았다. 무사히 통과하였다. 🎈 논리연산자 || OR 두 피연산자 중 하나라도 true면 true를 반환하고, 그렇지 않으면 `false`를 반환한다. alert( true || true ); // true alert( false || true ); ..

코딩테스트 2023.10.04

코딩테스트 풀이 - 배열의 평균값 | for, forEach 문, 나누기 연산자 /

🎈 내가 생각한 방법 1. 배열의 총 합 구해주기 2. 더한 숫자를 배열의 갯수로 나눠주기 ( array.length ) 작성한 코드 🎈 for 문 let 배열 = []; let 배열의 합 = 0; for ( let i = 0; i < 배열.length; i++ ) { 배열의 합 += 배열[i]; } 🎈 forEach 문 let 배열 = []; let 배열의 합 = 0; 배열.forEach(function(item){ 배열의 합 += item; }); 🎈 나누기 연산자 / let answer = total / numbers.length;

코딩테스트 2023.10.04

코딩테스트 풀이 - 짝수의 합 / 반복문, 나머지 연산자 %, push

🎈 내가 생각한 방법 1. n 보다 작은 짝수를 구한 값을 담은 배열을 만든다. 2. 그 배열의 합을 구한다. 처음에 이렇게 시도했는데 이상하게 오류가 났다. 지금보니 짝수 배열을 만드는 반복문 종료를 제대로 안했구나 const even = new Array(); const even = []; 이 둘의 차이를 모르겠다. 만들어지는 것은 똑같은데, new Array 를 쓰면 constructor (생성자) 까지 생성해준다. fill 을 사용해서 배열을 채워서 만들때에는 위의 방법이 사용되기도 하지만 권장하는 방법은 아래의 방법이다. 결론적으로 이 코드를 작성하기 위해 필요했던 기술?들은 아래와 같다 🎈 반복문 n 보다 작거나 같은 숫자를 0부터 1씩 증가하는 반복문, 배열의 길이까지 0부터 1씩 증가하는 ..

코딩테스트 2023.08.22

8월 9일 코딩테스트 풀이 - 나이 출력, 각도기

🎈나이 출력 2022년 기준이니까 2022 - 나이 값을 한 뒤 +1 을 해줬다. +1 인 이유는 우리나라 나이시스템 때문인가!? 🎈각도기 📃 문제 📃 맨 처음 if 문을 작성했는데 if 문이 아니라 s 로 시작하는.. 조건과 실행을 여러개 해 줄 수 있는 게 있었는데 ... 도저히 생각이 안나서 if 문을 검색해보던 중, else if 에도 조건을 주는 것이 가능하다는 것을 보고 이렇게 작성했다. 엄청난 오류들이 떴다. 마지막 else 때문에 그런가? 해서 코드를 수정해보았다. function solution(angle) { if ( 0 < angle < 90 ){ return 1; } else if ( angle === 90 ){ return 2; } else if ( 90 < angle < 180 ..

코딩테스트 2023.08.09