분류 전체보기
[JS] 110옮기기
https://school.programmers.co.kr/learn/courses/30/lessons/77886 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제 풀이방식을 너무 어렵게 생각해서 헤맨 문제였다. 규칙자체는 간단하다. 1. 문자열 중 "110" 이 들어간 부분을 모두 빼주고 그 개수를 세준다. 2. 남은 문자열중 "11" 이 처음 나오면 11 전에 110 * cnt 만큼의 문자열을 삽입해준다. 3. "11"이 없다면 마지막으로 나온 0의 다음에 110*cnt만큼의 문자열을 삽입해준다. 4. 그외 경우는 "1"만 있는 경우이므로 1..
[JS] 아날로그 시계
약간은 재밌는 방법으로 해결하였다. 프로그래밍적 관점보다는 시계에 관련된 특성을 조금 활용해서 직접 풀어보았다. 시침,분침,초건이 만나는 조건을 잘 생각하면 수학적으로 해결이 가능하다. 기본적으로 1분에 초침이 한바퀴를 돌며 시침,분침 두개를 한번씩 만난다고 가정해보자 그런데 잘생각해보면 59분 -> 00분으로 갈때는 초침과 분침이 만나지 않는데 59분인 경우 초침이 한바퀴를 돌아서 00분이 되는 경우에만 만나기 때문이다. 같은 원리로 분침,초침또한 11시->12시로 이동할때는 겹치지 않게된다. 즉 59분->00분으로 갈때마다 (한시간마다) 만나는 횟수를 1씩 빼주고 12시 00분인 경우에만 특이처리를 해주면 된다. [조금더 쉬운 설명!!~] 0시0분0초 ~ 23시59분59초까지 시,분,초침이 만나는 횟..
[JS] 수레 움직이기
예외처리가 조금 복잡한 BFS문제였다. 아래 항목들만 생각하면 문제에 조금 쉽게 접근할 수 있다. 1. 한턴에 빨간공,파란공은 한번씩 움직인다. 2. 빨간공이나 파란공이 도착했다면 더이상 움직이지 않는다. 3. 두 공은 같은 위치로 움직일 수 없다. 4. 두 공은 서로 교차하며 움직일 수 없다. 1번에서 특히 빨간공 파란공이 한번에 움직인다는 점에 포커스를 두면 된다. BFS를 통해서 빨간공을 상,하,좌,우로 움직이는 경우마다 파란공또한 움직이면 된다. map의 size가 5*5로 주어지는 이유이다. 총 16가지의 경우의 수들을 한 턴마다 증가시키면서 검사해야하기 때문이다. function solution(maze) { const rLen = maze.length const cLen = maze[0].l..
[JS] 석유 시추
문제 자체는 정말 어렵다고 느껴질 정도의 난이도는 아니었으나 효율성 부분을 해결하는데 애를 많이 먹은 문제였다. 문제 자체는 단순하게 접근할 수 있다. 모든 석유덩이의 크기를 미리 계산해둔 후, 세로선마다 석유덩이의 값을 계산해주면 된다. 처음에는 dfs를 활용해서 석유덩이의 크기를 계산한 이후 유니온-파인드를 통해서 석유덩이들의 부모노드에 크기를 저장하려 했었다. // 부모노드를 찾는 함수 function getParent(parentArr, i, j) { if (parentArr[i][j][0] === i && parentArr[i][j][1] === j) { return [i, j]; } parentArr[i][j] = getParent( parentArr, parentArr[i][j][0], pa..
[JS] 붕대 감기
프로그래머스에 PCCP 기출문제들이 추가되었다! 쉬운 문제부터 풀어보자 사실 어려운 문제는 아니었다. 시간을 변수로 하나 두고 while문을 한번 반복할때마다 1초가 흐른다고 가정하고 공격을 하거나 힐을 하면 되는 간단한 구현 문제이다. 플레이어가 취할수 있는 스텐스를 정리하면 아래와 같다. 1. 공격받기 - 공격받았을때 죽었는지 확인 - 연속성공 여부를 초기화 2. 힐 하기 - 힐하기 - 추가힐을 받는지 확인 - 최대체력을 넘는지 확인 왜인지는 모르겠지만 느낌이 와서 한글변수를 사용해서 한번 풀어보았다. 좋은 방법은 아니겠지만 시전시간,초당회복량,추가회복량 과 같은 부분에서는 확실히 가독성이 좋은것 같다. (단점도 많지만) 조만간 한글변수에 관련된 포스트도 한번 다뤄볼만한 것 같다. function s..
[Figma,React] SVG이미지 겹침 현상
react에서 svg파일들을 불러와서 쓰려는데 모든 이미지가 한가지 이미지로만 나오는 현상이 발생했다. Figma에서 SVG 파일을 다운로드 해서 사용하고 있었는데 왜 위와같은 현상이 발생하는지 찾아보니 위 svg 파일을 보면 id값을 pattern1을 사용하는 것으로 되어있다. Figma에서 이미지들을 다운로드 받으면 해당 id들이 모두 pattern0으로 되어 있어서 이런 문제가 발생하였다. 따라서 해당 fill과 id를 모두 바꿔주면 해결된다!!