일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Props Drilling
- locale data
- ZOD
- 리팩토링
- 프로그래머스
- next.js
- next-auth
- Github Actions
- custom hook
- Vanilla JavaScript
- React-hook-form
- interaction test
- useEffect
- React.memo
- 이메일 인증
- TextFormField
- Flutter
- kakao blind recruitment
- useMemo
- react
- javascript
- 백준
- visual test
- context api
- typescript
- Python
- 피보나치 함수
- 사탕게임
- suffixicon
- storybook
- Today
- Total
목록분류 전체보기 (32)
Dev Diary
백준 20365 블로그2문제 이해하기이전 인덱스 값이랑 현재 인덱스 값을 비교해 같다면 한개로 묶어 중복 값을 없애준다. -> arr 배열ex) BBRBRBBR -> BRBRBR문자열의 맨 처음 색상을 기준으로 해당 색상이 가장 마지막으로 나오는 인덱스(end 변수)까지를 한 묶음으로 생각한다.ex) 1.을 수행하고 나온 결과가 BRBRBR인 경우 BRBRB까지를 한 묶음으로 생각한다.2.의 결과로 나온 한 묶음 안에서 for 문을 돌며 맨 처음 인덱스 값(standardColor)과 다른 값인 경우 answer += 1을 수행한다.왜? 한 색상으로 다 칠한 뒤 다른 색상인 부분만 골라 칠하면 가장 효율적이기 때문에.3.의 결과로 나온 answer 값을 1.에서 구한 전체 길이(workLength) - ..
백준 10026 적록색약문제 이해하기각 그림에는 R,G,B의 3가지 색상이 존재한다.정상인 사람은 R,G,B의 구별이 가능하지만, 적록색약인 사람은 R과 G가 붙어있는 경우 같은 색으로 본다. (떨어져 있는 경우에는 구별 가능)bfs를 이용해 풀 것이다.정상인 경우 일반적인 bfs 로직을 이용하며 현재 위치의 색상과 주위(4방향)을 탐색하며 같은 색상인 경우에만 visited를 True로 바꿔주고 이동할 수 있도록 하며, 한번의 bfs 연산이 끝났을때 count를 증가시켜 구역의 개수를 세어준다.적록색약인 경우 일반적인 bfs 로직과 똑같이 진행하지만, R과 G가 붙어있는지 검사하는 조건을 추가해 붙어있다면 이 경우에도 visited를 True로 바꿔주고 이동할 수 있도록한다. 풀이import sysin..
프로그래머스 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'''같은 색..
문제점next-auth를 이용해 로그인을 구현하는데 아이디 혹은 비밀번호를 잘못 입력하는 경우 자꾸 내가 원하는 에러 핸들링 형태가 아닌 next-auth만의 Error 페이지가 출력되었다.내가 원하는 에러 핸들링"아이디 혹은 비밀번호가 일치하지 않습니다!" 라는 경고창을 띄우고 내가 만든 커스텀 /login 페이지에 머무르는것현재 에러 핸들링 형태아래와 같은 next-auth의 /api/auth/error 페이지가 출력됨.해결법 const onClickLoginRequest = async () => { const res = await signIn('credentials', { name: name, password: password, redirect: false, ..