FrontEnd
[JS] 붕대 감기
프로그래머스에 PCCP 기출문제들이 추가되었다! 쉬운 문제부터 풀어보자 사실 어려운 문제는 아니었다. 시간을 변수로 하나 두고 while문을 한번 반복할때마다 1초가 흐른다고 가정하고 공격을 하거나 힐을 하면 되는 간단한 구현 문제이다. 플레이어가 취할수 있는 스텐스를 정리하면 아래와 같다. 1. 공격받기 - 공격받았을때 죽었는지 확인 - 연속성공 여부를 초기화 2. 힐 하기 - 힐하기 - 추가힐을 받는지 확인 - 최대체력을 넘는지 확인 왜인지는 모르겠지만 느낌이 와서 한글변수를 사용해서 한번 풀어보았다. 좋은 방법은 아니겠지만 시전시간,초당회복량,추가회복량 과 같은 부분에서는 확실히 가독성이 좋은것 같다. (단점도 많지만) 조만간 한글변수에 관련된 포스트도 한번 다뤄볼만한 것 같다. function s..
[REACT] 이미지 관리 방법 (public vs assets)
리액트에는 크게 이미지처리방법이 2가지 있다. 1. public 파일 안에 바로 이미지를 관리하는 방법 2. src/assets 파일을 만든 후 이미지를 관리하는 방법 과연 어떤 방법이 좀 더 좋은 방법일까? 정답은 두가지 방법다 장단점이 존재한다.. 이다. 1. public 사용 간단하게 사용할 수 있으며 public 폴더에 있는 이미지를 상대 경로를 통해 쉽게 불러올 수 있다. 이미지를 직접 불러오기 때문에 번들링 처리가 필요없다 라는 장점이 있다. 대신 이미지의 관리가 어려울 수 있으며 이미지가 많거나 프로젝트가 커질수록 유지보수가 어려워진다는 단점이 있다. 또, 이미지의 크기가 큰 경우 로딩 성능에도 영향을 미칠 수 있다고 한다. 위 예시처럼 불러올 수 있다. 2. src/assets 사용 이미지..
[JS] 퍼즐조각 채우기
https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정말 쉽지 않은 문제였다. 문제 자체를 접근하는것과 풀이는 처음에 잘했었다. 1. table에서 블럭들의 정보를 배열로담아옴 2. 회전이 가능하므로 회전가능한 블럭들의 정보들을 배열에 추가 3. 완전탐색을 활용하여 game_board에 빈칸이 있는지 탐색 따라서 아래와 같이 해결해 봤는데 아무리 생각을 해도 시간초과를 해결할 수 가 없었다. function solution(game_board, t..
[GIT] 레포기록을 유지한 채 다른 레포로 옮기기
레포 기록(commit , push 기록)을 유지하면서 다른 레포로 내용을 옮기거나, 두개의 레포지토리를 한 개로 합치고 싶은 경우가 있다. 그냥 코드를 합치면 될 꺼 같지만 그러면 레포를 작성했던 기록들이 날아가게 되는데 이 기록들을 유지하면서 레포를 옮기는 방법에 대해 소개하겠다. 내가 옮기고 싶은 레포 => A 내가 옮길 레포 (최종적으로 합쳐질 레포) => B 라고 하자. 우선 A의 커밋 기록들을 mirror 옵션을 통해서 가져와야 한다. A의 주소의 HTTPS 주소를 위처럼 복사해주자. git clone --mirror {a의 https주소} 위와 같이 mirror옵션을 활용해서 A의 레포를 복사해온다. --mirror 옵션을 활용하면 저장소의 소스뿐 아니라 커밋 히스토리까지 가져올 수 있기때문..
[JS] 금과 은 운반하기
상당히 어려운 문제였다. 프로그래머스 3단계쯤 들어와서부터는 절반쯤은 스스로 해결을 하지 못하는 것 같다.. (ㅜ) 이번 문제도 카카오에서 제공한 해설을 읽고 해결하였다! 문제에서 제공하는 무지막지한 테스트케이스에서 알 수 있듯이 일반적인 방식으로 문제를 접근하면 풀 수 없다. (완전탐색,DP등) 문제의 핵심은 이분탐색에 있었다. gold = 특정 시간 t 동안 얻을 수 있는 최대 골드 수 silver = 특정 시간 t 동안 얻을 수 있는 최대 실버 수 add = 특정 시간 t 동안 골드와 실버를 한번에 얻을 수 있는 최대 수 라고 두었을때 a + b = a && silver >= b && add >= a + b) { end = mid - 1; ret = Math.min(mid, ret); }else {..
[JS] 아이템 줍기
https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제접근을 잘못해서 두번 해결한 문제였다. 처음에는 도화지위에 네모 모양의 성벽을 쌓은 이후, 밖에서 물을 부으면 성벽을 기준으로 바깥쪽만 물의 영역이 되는 원리를 이용해서 문제를 해결하려고 했다. (비록 문제에서는 직사각형이 4개뿐이지만 위 방법을 사용하면 직사각형의개수가 매우많아져도 시간복잡도에 크게 영향이 없기 떄문) 해당방법으로 구현은 했지만 위처럼 ㄷ자로 이어지는 성벽을 구현하지 ..