seunghyun Note
알고리즘&자료구조 스터디 2주차(실습) 본문
728x90
반응형
☺︎ Problem Solving 적용하기
💪🏻 Problem Solving을 통해 문제를 코딩 테스트 문제를 해결해보자!
🙃 문제 설명
머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money
가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
문제를 해결할 때에 5가지 방법으로 접근해서 문제 해결 고고씽
🔑 understand the problem : 문제에 대해 이해하기
🔑 Explore concrete Examples : 각 예시들을 탐구하기.
🔑 Break it Down : 분석하기. (문제에 대한 단계들을 실제로 수행하면서 작성)
🔑 Solve/Simplify : 문제를 해결하고 단순화하기.
🔑 Look Back and Refactor : 회고와 리팩터링하기. (개발자들에게 있어서 가장 중요한 단계)
🔑 Understand the Problem : 문제에 대해 이해하기
/*
Problem solving - step 1 : Understand the Problem : 문제에 대해 이해하기
1. Can I restate the the problems in my own words?
"Find the quotient and remainder"
"몫과 나머지를 구하자!"
2. what are the inputs that go into the problem?
0 < money ≤ 1,000,000
3. what are the outputs that should come from the solution to the problem?
0 < money ≤ 1,000,000
4. Can the outputs be determined from the inputs?
" ㅆ ㄱ ㄴ "
5. How should I label the important pieces of data that are a part of the problem?
*/
🔑 Explore Examples : 각 예시들을 탐구하기
//Problem solving - step 2 :Explore Concrete Examples : 각 예시들을 탐구하기
//1. 간단한 예시로 시작 🛫
solution(5500); // [1, 0]
//2. 더 복잡한 예시들로 진행.
solution(15000); // [2,4000]
//3. 빈 입력값이 있는 예제를 살펴보기
solution(""); // 실행이 안된다.
//4. 사용자가 유효하지 않은 값을 입력하면 어떻게 될지 살펴보기
solution('ㅁ'); //실행이 안된다.
🔑 Break it Down! : 분석하기
//Problem solving - step 3 :break it Down : 분석하기 🤔
function solution(money) {
// do something
// 저장할 새로운 배열을 만든다.
// 잔수와 남는 돈을 순서대로 저장할수 있게 0번째 : 잔수 1번째 : 남는돈으로 저장할 수 있게 설정
// 0 index에는 나누기 연산자를 사용해 정수형을 저장한다.
// 1 index에는 나머지 연산자를 사용해 정수형으로 저장한다.
// return하기
}
🔑 Solving / Simplify : 문제를 해결하고 단순화하기
//Problem solving - step 4 : Solving & Simplify : 문제를 해결하고 단순화하기.
function solution(money) {
// do something
// 저장할 새로운 배열을 만든다.
var answer = [];
// 잔수와 남는 돈을 순서대로 저장할수 있게 0번째 : 잔수 1번째 : 남는돈으로 저장할 수 있게 설정
// push 를 사용해 index 순서에 맞게 적용 시키기!
answer.push(parseInt(money/5500));
answer.push(money%5500);
//return object at end...!
return answer;
}
🔑 Look Back & Refactor
- look Back : 내가 처음에 작성했던 코드는 push를 이용해 index에 넣는 방식이였는데 코드를 작성하게 되면 길이가 비교적 길다.
- refactor : return 에 바로 몫과 나머지를 반환할수있게 간단하게 적용시키기
// 더 간단하게....! // math.floor 를 사용하여 바로 return으로 반환시킨다. function solution(money) { // 코드의 가독성과 간결성을 증가시킴. return [Math.floor(money / 5500), money % 5500]; }
💻 Source
- ✏️ Best JavaScript Data Structures & Algorithms Course by Udemy, last updated January 2022, accessed April 5, 2023 - https://www.udemy.com/
- 🫵🏻 Programmers https://school.programmers.co.kr/learn/courses/30/lessons/120819
728x90
반응형
'스터디 > 알고리즘 & 자료구조' 카테고리의 다른 글
알고리즘&자료구조 스터디 5주차 [Sliding Window, D&C] (2) | 2024.01.05 |
---|---|
알고리즘 & 자료구조 스터디 4주차[multiple Pointers] (1) | 2024.01.05 |
알고리즘&자료구조 스터디 3주차 [Frequency Counter] (1) | 2024.01.05 |
알고리즘 & 자료구조 스터디 2주차 [Problem Solving] (2) | 2024.01.05 |
알고리즘 & 자료구조 스터디 1주차 [Big O] (2) | 2024.01.05 |