- 주어진 문항을 일단 다 풀이해서 다시 0단계 안푼문제를 풀기 시작했다..!
눈이 아파서 컴퓨터를 오래 못하겠다 어쩌지 ㅠㅠ 루테인을 주문했다....
<오늘의 문제>
- 피자 나눠 먹기 (3)
- 머쓱이보다 키 큰 사람
- 점의 위치 구하기
- 배열 두배 만들기
- 문자열 뒤집기
- 순서쌍의 개수
1. 피자 나눠 먹기 (3)
function solution(slice, n) {
var answer = 0;
if (n % slice === 0) {
answer = n / slice;
} else {
answer = parseInt(n / slice + 1);
}
return answer;
}
- 나의 풀이
: 피자 나눠먹기문제는 문제 이해는 1초면 끝나는데, 코딩을 하려고 하면 자꾸 멈칫하게된다..
멍청해서 그런가 ?~???~? ㅠㅠ
일단 피자의 개수는 항상 정수값이라는걸 기억하면된다.
2. 머쓱이보다 키 큰 사람
function solution(array, height) {
var answer = 0;
for (let i = 0; i < array.length; i++) {
if (array[i] > height) {
answer++;
}
}
return answer;
}
- 나의 풀이
: 너무 간단한 문제라 작성할까 고민했다.
각 배열의 요소중 주어진 height 값보다 큰 요소의 개수를 출력하는 문제이고,
기본적인 for문을 사용하여 if문으로 조건을 달아줬다.
3. 점의 위치 구하기
function solution(dot) {
var answer = 0;
if(dot[0] > 0) {
answer = dot[1] > 0 ? 1 : 4;
} else
answer = dot[1] > 0 ? 2 : 3;
return answer;
}
- 나의 풀이
: 전에 Java로 풀었던 문젠데 똑같이 기억났다.
전형적인 조건문만을 이용해서 해결하는 문제이고, if문을 통해서 첫번째 인덱스값을 조건으로
고정한뒤, 삼항연산자를 통해서 두번째 인덱스값에도 조건을주고, true와 false 값을 출력시켰다.
4. 배열 두배 만들기
function solution(numbers) {
var answer = [];
numbers.forEach((a) => {
answer.push(a * 2);
})
return answer;
}
- 나의 풀이
: 순간적으로 forEach 문만 생각해서 풀어야지 하고 풀었다가, forEach 사용을 거의 해본적이없어서
answer값에 .push
하는걸 아예 잊고있어서 골탕좀 먹었다.
a의 변수값에 numbers의 모든 요소들이 들어가서 돌게되었고, 각각의 요소값에 * 2를 하여 [] 빈 배열안에 값을 모두 넣어 출력했다.
5. 문자열 뒤집기
function solution(my_string) {
var answer = '';
const opposite = my_string.toString().split('').reverse().join('');
return opposite;
}
- 나의 풀이
: 전형 적인 문자열 뒤집기 문제였는데, 오 제목도 문자열 뒤집기네 ㅎㅎ
일단 당연히 .reverse()
메소드가 생각났는데 사용하기위해서는 배열로 바꿔줄 필요가 있다.
새로운 변수 opposite를 선언한 뒤, split('')
으로 한글자씩 쪼개서 분리한 뒤 배열을 만들고, .reverse()
로 뒤집어준 다음에 join('')
으로 다시 문자열로 바꿔주었다.
6. 순서쌍의 개수
function solution(n) {
var answer = [];
for (let i = 1; i <= n; i++){
if (n % i == 0) answer.push(i)
}
return answer.length;
}
function solution(n) {
var answer = [];
for (let i = 1; i <= n / 2; i++){
if (n % i == 0) answer.push(i)
}
answer.push(n)
return answer.length;
}
- 나의 풀이
: 일단 순서쌍의 의미는 주어진 n의 값을 약수끼리 쌍으로 배열하는건데, 결국 약수의 개수를 구하는 문제다.
처음의 풀이와 두번째 풀이의 출력값은 같지만, 실행 속도에서 큰 차이가 있다.
for문의 조건식의 범위가 차이인데, 결국 n의 약수는 n / 2값 이상의 값이 자기자신(n)밖에 없기 때문에, 범위를 n / 2 로 줄여서 따로 n값만 push해준 뒤 문제를 마무리했다..