일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- useMemo
- Vanilla JavaScript
- React.memo
- context api
- next.js
- 프로그래머스
- 백준
- typescript
- React-hook-form
- react
- 피보나치 함수
- 사탕게임
- locale data
- ZOD
- 이메일 인증
- TextFormField
- Props Drilling
- 리팩토링
- interaction test
- useEffect
- visual test
- storybook
- suffixicon
- Github Actions
- kakao blind recruitment
- Flutter
- javascript
- custom hook
- next-auth
- Python
- Today
- Total
목록Algorithms (13)
Dev Diary
프로그래머스 2018 KAKAO BLIND RECRUITMENT - [1차] 비밀지도 문제 이해하기지도1, 지도2가 주어지고 이 두 지도를 합쳐서 전체 지도를 얻을 수 있다.대신, 주어지는 값은 [1,0,1,1,0] 이런식으로 주어지는 것이 아니고 9, 20과 같은 10진수로 주어진다.따라서 이를 이진수로 변환하여 지도 배열을 생성해야한다.생성할때 주의할 점은 각 행의 길이를 동일하게 맞춰줘야 한다는 것이다. -> 패딩 함수를 구현한다.두 지도를 합칠때는 or 연산을 사용해 하나라도 1이면 1로 지정한다.합쳤을때 값이 1인 칸의 경우와 아닌 경우를 삼항연산자로 판단하여 '#' 혹은 ' '로 변환한다.앞선 과정을 거쳐 나온 값을 출력에 알맞게 가공해 최종 결과를 도출한다. function solution(..
프로그래머스 LEVEL 1 - 자릿수 더하기문제 이해하기각 자릿수의 합을 구해야함으로 숫자 하나하나를 슬라이싱해야한다고 생각했다. 하지만 어떻게 슬라이싱 해야할지 방법이 떠오르지 않았다.그래서 먼저 입력받은 값 n을 10으로 나눈 나머지를 answer 변수에 더하고 그 이후 계속 n / 10을 수행해 n의 자릿수를 줄여가며 계산을 수행했다. n / 10을 해줌으로써 n의 변화: 123 -> 12 -> 1 function solution(n) { var answer = 0; while (n > 0) { answer += n % 10 n = parseInt(n / 10) } return answer;} 더 쉬운 풀이방법문제를 풀기 전에 어떻게 슬라이싱할지 몰라서..
프로그래머스 LEVEL 1 - 달리기 경주문제 이해하기players와 callings 배열이 주어진다.players: 1등부터 현재 등수 순서대로 담긴 문자열 배열callings: 달리기 경주 도중 추월"한" 사람들의 이름이 들어있는 문자열 배열 문제를 보고 가장 먼저 든 생각은 callings 배열을 순회하면서 각 요소들의 index 값을 players 배열에서 찾은 뒤 splice를 이용해 바로 앞 위치에 해당 요소를 넣어주고 기존 위치의 값은 삭제하면서 players 배열을 갱신해주는 방식을 사용해야겠다는 생각이였다. (이 생각 덕분에 열릴 지옥같은 미래는 생각도 못한채...) 아래와 같은 망한(?) 코드를 작성했다.function solution(players, callings) { for ..
백준 1063 킹 문제 바로가기문제 이해하기핵심 1: 킹과 돌 2개의 물체가 있다.핵심 2: 아래와 같은 명령으로 킹의 움직임을 제어할 수 있다.R : 한 칸 오른쪽으로L : 한 칸 왼쪽으로B : 한 칸 아래로T : 한 칸 위로RT : 오른쪽 위 대각선으로LT : 왼쪽 위 대각선으로RB : 오른쪽 아래 대각선으로LB : 왼쪽 아래 대각선으로핵심 3: 주어진 명령을 이용해 킹을 움직이다가 체스판 위에 놓여있는 돌과 같은 위치에 놓이게 된다면(겹쳐진다면) 방금 킹이 이동했던 방향으로 돌도 이동시킨다.핵심 4: 킹과 돌 모두 체스판 범위인 8x8을 벗어나게 되는 상황이 발생한다면, 해당 상황을 발생하게한 이동을 무르고 건너뛴다.내가 문제를 읽으며 중요하다고 생각한 부분은 이정도였고, 이 중에서도 핵심 3과 4..
백준 3085 사탕 게임 문제 바로가기문제 이해하기핵심 1: 주어진 사탕은 N x N 모양으로 놓여있고, 빨강(C), 파랑(P), 초록(Z), 노랑(Y)의 4가지 색의 사탕이 존재한다.핵심 2: 인접한 사탕이면서 서로 다른 색상일 경우에만 두 사탕의 위치를 서로 바꿔준다.핵심 3: 핵심 2의 과정을 한번 수행할 때마다 전체 사탕을 검사하며 모두 같은 색상으로만 이루어져 있는 가장 긴 부분을 찾아 최대 길이를 갱신한다.따라서, 구현해야할 주요 로직은 인접한 사탕이 서로 다른 색상일 경우 두 사탕의 위치를 스왑하는 부분과 주어진 N x N 사탕 배열을 돌면서 같은 색상으로 연속된 사탕의 개수를 검사해 최대 길이를 갱신하는 부분이다.풀이import sysinput=sys.stdin.readline'''같은 색..