본문 바로가기
  • 살짝 구운 김 유나

분류 전체보기146

[Lv.3] 네트워크 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(n, computers) { var network = 0; const visited = new Array(n).fill(false); function DFS(index) { visited[index] = true; // 방문 처리 for (let i = 0; i < n; i++) { // 기준이 되는 인덱스와 연결되어 있고, 방문한 적이 없는 노드라면 i.. 2023. 2. 28.
[Lv.3] 최고의 집합 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(n, s) { var answer = []; const share = (s / n) >> 0; // 소숫점 뒷자리 버림 const rest = s % n; if (!share) return [-1]; // 몫이 1보다 작으면 집합 생성 불가능 answer = new Array(n).fill(share); for (let i = n - 1; i > n-1-.. 2023. 2. 27.
[Lv.2] 올바른 괄호 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(s) { var answer = true; let stack = []; for (let i of s) { if (i === "(") { stack.push(i); } else { if (stack.length > 0) { stack.pop(); } else { // 짝이 맞지 않을 때도 false처리 해주어야함 answer = false; } } } //.. 2023. 2. 26.
[Lv.2] JadenCase 문자열 만들기 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(s) { var answer = ""; let flag = true; for (let i of s) { let tmp = i.toLowerCase(); if (flag) { if (i !== " ") { flag = false; if (isNaN(i)) { // 숫자가 아닌 경우에만 tmp = tmp.toUpperCase(); } } } if (i ===.. 2023. 2. 26.
[TypeScript] Composition 상속의 문제점 ? => 여러개의 클래스를 상속받아 사용하는 경우, 그 규모가 커질 수록 클래스간의 관계가 복잡해질 수 있음 순양은 이제 장자상속 없다 Composition : 각각의 기능별로 클래스를 분리해 만들어 둠으로써 필요할때마다 가져다가 쓰는 것 아래의 예제에서는 우유를 추가하는 클래스, 설탕을 추가하는 클래스를 따로 분리해보자 { /** * Composition */ type CoffeeCup = { shots: number; hasMilk?: boolean; // Optional hasSugar?: boolean; // Optional }; interface CoffeeMaker { makeCoffee(shots: number): CoffeeCup; } class CoffeeMachine im.. 2023. 2. 25.
[Lv.2] 최댓값과 최솟값 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(s) { var answer = ""; let arr = s.split(" ").map(function (item) { return Number(item); }); let max = -9999; let min = 9999; arr.forEach((element) => { if (element > max) { max = element; } if (eleme.. 2023. 2. 25.
[Lv.0] 다음에 올 숫자 - JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(common) { var answer = 0; // 등차수열인 경우 if (common[1] === (common[0]+common[2])/2) { answer = common.slice(-1)[0] + common[1]-common[0] } else { // 등비수열인 경우 answer = common.slice(-1)[0] * common[1]/co.. 2023. 2. 24.
[Lv.0] 옹알이1 -JavaScript 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 function solution(babbling) { var answer = 0; const available = ["aya", "ye", "woo", "ma"]; for (let i in babbling) { let word = babbling[i]; for (let j in available) { word = word.replace(available[j], "_"); } // if.. 2023. 2. 24.
[TypeScript] 객체지향 (OOP) 절차 지향 : 정의된 순서대로(절차적으로) 함수가 하나씩 호출됨 하나를 수정하기 위해서 전체적인 어플리케이션을 이해해야함 수정했을때 side Effect가 발생할 수 있음 한눈에 이해하기 어렵다 Coffee Maker 예제) { /** * 절차지향적 프로그래밍 */ type CoffeeCup = { shots: number; hasMilk: boolean; }; const BEANS_GRAMM_PER_SHOT: number = 7; let coffeebeans: number = 0; function makeCoffee(shots: number): CoffeeCup { // 커피 콩이 부족하다면 if (coffeebeans < shots * BEANS_GRAMM_PER_SHOT) { throw new Er.. 2023. 2. 24.
[TypeScript] 기본 타입 #2 Type Alias (타입 별칭) : 타입의 새로운 이름을 만들어 직접 타입을 정의할 수 있음 /** * Type Aliases * 새로운 타입을 내가 정의할 수 있음 */ // 원시타입 type Text = string; const name: Text = "yuna"; const address: Text = "korea"; type Num = number; // Object 타입 type Student = { name: string; age: number; }; const yuna: Student = { name: "유나", age: 24, }; String Literal Types : 타입을 값 자체로 지정할 수 있음 해당 타입으로 선언된 변수는 지정된 문자열의 값만 할당 가능 /** * String.. 2023. 2. 22.