일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- OOP
- logger
- nestjs
- queue
- TIL
- typescript
- MySQL
- LifeCycle
- Deep Dive
- node.js
- 인접행렬
- css
- java
- Spring
- html
- 탐욕법
- Interceptor
- 자료구조
- 프로그래머스
- JWT
- REST API
- dfs
- 알고리즘
- javascript
- 코딩테스트
- 인접리스트
- GraphQL
- 변수
- bean
- winston
- Today
- Total
목록전체 글 (227)
처음부터 차근차근
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/43105 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 내 풀이 function soluti..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12951 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 내 풀이 function solution(n)..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/120869 문제 설명 PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. 제한사항 spell과 dic의 원소는 알파벳 소문자로만 이루어져있습니다. 2 ≤ spell의 크기 ≤ 10 spell의 원소의 길이는 1입니다. 1 ≤ dic의 크기 ≤ 10 1 ≤ dic의 원소의 길이 ≤ 10 spell의 원소를 모두..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12951 문제 설명 내 풀이 function solution(priorities, location) { // index가 추가된 배열 만들기. 첫번째는 value, 두번째는 index let indexArray = priorities.map((v, idx) => [v, idx]) // 최우선 순위를 알기 위해서 우선순위 Array를 제작 const sortedArray = priorities.sort((a,b) => b-a); // 답안용 빈 배열 const answerArray = []; // sortedArray가 다 없어질 때까지 동작 while(sortedArray.length > ..
오늘 한 일 코딩테스트 코딩테스트 탐욕법 문제 정리 진행 탐욕법에 집중하다보니 자료구조나 알고리즘을 활용할 생각을 하지 못했다. 어려운 코딩 테스트 문제를 풀어보면서, "내가 공부해왔던 자료구조, 알고리즘을 잘 활용하지 못하는구나"를 느꼈습니다. 이를 위해 계속해서 코딩 테스트 문제를 풀 것이며, 문제를 읽고 어떠한 자료구조나 알고리즘 방법이 옳은지 생각하는 것이 필요하다고 느꼈습니다. 그리고 이번에 취업에 성공하였는데, 앞으로 더 좋은 Backend 개발자가 되기 위해서는 많이 노력해야 된다고 생각하였습니다.
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42883 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 2자리 이상, 1,000,000자리 이하인 숫자입니다..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42860 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 (마지막 위치에서 오른쪽으로 이동하면 첫 번째 문자에 커서) 예를 들어 아래의 방법으로 "JAZ"를 만들 수 있습니다. - 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다...
OCP 좋은 객체 지향 설계 원칙 중 하나로 OCP 원칙이 존재합니다. 개방 폐쇄의 원칙이란, 기존의 코드는 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다는 의미입니다. Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다. Closed for modification: 기존의 코드는 수정되지 않아야 한다. 즉, 확장(새로운 기능이 추가)에는 열려있고, 변경에는 닫혀 있다는 뜻입니다. 확장에 열려있다 모듈의 확장성을 보장하는 것을 의미한다. 새로운 변경 사항이 발생했을 때 유연하게 코드를 추가함으로써 애플리케이션의 기능을 큰 힘을 들이지 않고 확장할 수 있다. 변경에 닫혀있다 객체를 직접적으로 수정하는건 제한해야 한다는 것을..
코드를 작성할 때 일정한 제약이나 규율이 없이 무한한 자유를 준다면, 의외로 더 작성하기 힘든 때가 존재합니다. 어떻게 하면 보다 효율적이고 효과적으로 작성하기 위해 원칙이나 제약을 고민하거나 작성하는 시간이 더 투자되고, 이로 인하여 Resource가 소모되곤 합니다. 우리는 대부분 백엔드 개발을 한다고 하면 객체 지향으로 프로그래밍 합니다. 하지만 이것이 어떤 원칙에 입각되야 하는지 잘 알아야 조금 더 효율적이고 효과적인 코드를 작성할 수 있습니다. 이번 시간에는 객체 지향 설계의 5원칙을 알아보겠습니다. S.O.L.I.D 객체 지향 설계 5원칙 SOLID원칙이란 객체 지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙을 의미합니다. SRP(Single Responsibility Principle..
이번 포스팅에서는 객체 지향 프로그래밍의 특징 중 하나인 다형성에 대해 조금 더 깊게 공부해보겠습니다. 객체 지향 프로그래밍에 대한 포스팅을 먼저 보고 오는 것을 추천드립니다. [OOP] 객체 지향 프로그래밍이란? 객체 지향 프로그래밍(OOP)란? 컴퓨터 프로그램을 명령어릐 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것 - wikipedia 프로그램 구현에 필요한 hangju95.tistory.com 다형성?? 다형성(Polymrophism) 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질 즉, 어떤 객체의 속성이나 기능이 그 맥락에 따라 다른 역할을 수행할 수 있는 객체 지향의 특성을 의미합니다. 이를 통해 객체 지향 ..