🌠 문제

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

🌠 제한사항

  • 1 ≤ n ≤ 100

🌠 입출력 예

7 1
1 1
15 3

🌠 입출력 예 설명

입출력 예 #1

  • 7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.

입출력 예 #2

  • 1명은 최소 한 조각을 먹기 위해 1판이 필요합니다.

입출력 예 #3

  • 15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.

🧞 풀이

function solution(n) {
    const quotinent = parseInt(n / 7); //몫
    const residue = n % 7; // 나머지
    if (residue > 0) { // 나머지가 0보다 크면
        return (quotinent + 1); // 몫 + 1 리턴
    } else { return (quotinent); } // 몫 리턴
}

🌠 문제

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

🌠 제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000

🌠 입출력 예

[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1

🌠 입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.

입출력 예 #2

  • [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.

입출력 예 #3

  • [1]에는 1만 있으므로 최빈값은 1입니다.

🧞 풀이

function solution(array) {
    // array의 최댓값만큼의 길이를 가진 새로운 배열 생성
    let newArray = new Array(Math.max(...array)+1).fill(0);
    // array 반복문을 통해, 해당 값에 해당하는 index의 값 += 1
    for (let i = 0; i < array.length; i++) {
        newArray[array[i]] += 1
    }
    // newArray의 최댓값에 해당 하는 index 출력
    // 만약 indexOf와 lastIndexOf가 지칭하는 값이 같으면, -1 출력 (중복인 경우 확인)
    if (newArray.indexOf(Math.max(...newArray)) !== newArray.lastIndexOf(Math.max(...newArray))) {
        return -1
    } else {
        return newArray.indexOf(Math.max(...newArray));
    };
}

🌠 문제

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

🌠 입출력 예 

[1, 2, 7, 10, 11] 7
[9, -1, 0] 0

🌠 입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

🧞 풀이

function solution(array) {
	// 오름차순 정렬한 새로운 배열을 newArray에 할당
    let newArray = array.sort(function(a, b) { 
    return a - b});
    
    // 배열의 길이를 index에 할당
    const index = array.length;
    
    // 배열의 길이를 2로 나눈 몫의 정수값을 인덱스에 넣어 해당 값 출력
    return newArray[parseInt(index/2)];
}

🌠  문제

정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 0 < num1 ≤ 100
  • 0 < num2 ≤ 100

🌠 입출력 예

3 2 1
10 5 0

 

🌠 입출력 예 설명

입출력 예 #1

  • num1이 3, num2가 2이므로 3을 2로 나눈 나머지 1을 return 합니다.

입출력 예 #2

  • num1이 10, num2가 5이므로 10을 5로 나눈 나머지 0을 return 합니다.

🧞 풀이

function solution(num1, num2) {
    return num1 % num2
}

🌠 문제

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • -10,000 ≤ numbers의 원소 ≤ 10,000
  • 1 ≤ numbers의 길이 ≤ 1,000

🌠 입출력 예

[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]
[1, 2, 100, -99, 1, 2, 3] [2, 4, 200, -198, 2, 4, 6]

🌠 입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다.

입출력 예 #2

  • [1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다.

🧞 풀이

function solution(numbers) {
    let newNumbers = numbers.map(function(element){
        return element *2;
    });
    return newNumbers;
}

// map 함수를 쓰면, 반복문을 돌리는 대신 배열 각 원소에 해당 함수를 적용할 수 있다.

🌠 문제

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • 0 <numer1, denom1, numer2, denom2 < 1,000

🌠 입출력 예


1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

🌠 입출력 예 설명

입출력 예 #1

  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

🧞 풀이

function solution(numer1, denom1, numer2, denom2) {
    let a = numer1 * denom2 + numer2 * denom1
    let b = denom1 * denom2
    let maximum = 1
    
    for (let i = 1; i <= a; i++) {
        if(a%i === 0 && b%i === 0) {
            maximum = i
        }
    }
    return [a / maximum, b / maximum]
}

// 최대 공약수를 구하고 해당 값으로 분자, 분모를 나눠서 출력할 것

🌠 문제

정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 0 ≤ num1 ≤ 10,000
  • 0 ≤ num2 ≤ 10,000

🌠 입출력 예

2 3 -1
11 11 1
7 99 -1

🌠 입출력 예 설명

입출력 설명 #1

  • num1이 2이고 num2가 3이므로 다릅니다. 따라서 -1을 return합니다.

입출력 설명 #2

  • num1이 11이고 num2가 11이므로 같습니다. 따라서 1을 return합니다.

입출력 설명 #3

  • num1이 7이고 num2가 99이므로 다릅니다. 따라서 -1을 return합니다.

🧞 풀이

function solution(num1, num2) {
    return num1 === num2 ? 1 : -1;
}

삼항연산자 활용 (조건 ? true일 때 반환 값 : false일 때 반환 값)

오늘 공부한 내용 📝

  • React Native
    • ScrollView, Text 등의 서식 관련한 지식: RN은 borderBottom이나 borderTop의 선으로 된 border를 지원하지 않는다.
    • 대신 FlatList를 사용하고, separator 속성을 활용하여, mapping된 요소 사이에 구분선을 만들어 줄 수 있다!
    • 네비게이터 안의 스크린간 이동 애니메이션은 presentation, animation 등의 속성을 통해서 구현 가능하다.

궁금한 내용 / 부족한 내용 🧐

  • 진도율 부분과 관련된 로직을 어떻게 적용할 지 조금 더 논의해봐야 할 것이다. 차트 라이브러리를 쓸 것인가?
  • 정보를 넣게 된다면 해당 정보에 맞는 아이템을 FlatList로 render하는 방향으로 리팩토링 진행할 것이다.

느낀 점 🤔

꾸준하게, 꼼꼼하게

'✒️ Study Log > ⬜ Today I Learned' 카테고리의 다른 글

[TIL - 230214]  (0) 2023.03.05
[TIL - 230213]  (0) 2023.03.05
[TIL - 230207]  (0) 2023.02.12
[TIL - 230205]  (0) 2023.02.12
[TIL - 230202]  (0) 2023.02.12

개인 프로젝트로 포트폴리오 웹사이트가 만들고 싶어서 데스크탑에 리액트를 설치했다.

기존에는 패키지 매니저 npm과 패키지 러너인 npx만을 사용했는데,

이번 기회에 yarn으로 react를 설치하고 사용하고자..

yarn이 도대체 무엇인지 알아보았다!

...

yarn은 쉽게 말해서, 페이스북에서 만든

npm과 같은 node.js 자바스크립트 패키지 매니저이다.

장점은 기존의 npm이 가졌던 단점을 보완하는 차원에서 만들어진 도구기때문에,

npm이 가졌던 버전 차이로 인한 패키지 중복 설치 등의 문제를 잘 보완해준다는 것..!

...

yarn은 npm을 통해서 설치 가능한데, 설치 방법은 다음과 같다!


+ Recent posts