끄적끄적 코딩
[Javascript] 프로그래머스 - 바탕화면 정리
알고리즘 2025. 1. 3. 01:55

문제 설명컴퓨터 바탕화면이 격자 형태로 주어집니다.격자에는 파일이 있는 칸과 빈 칸이 존재합니다.모든 파일을 최소한의 이동 거리로 선택하려고 합니다.드래그는 바탕화면의 왼쪽 위 시작점과 오른쪽 아래 끝점을 선택해 직사각형으로 파일을 포함하는 방식입니다.제약 조건바탕화면 크기세로 크기는 1 이상 50 이하입니다.가로 크기는 1 이상 50 이하입니다.모든 행의 길이는 동일합니다.격자 내용파일이 최소 1개 이상 포함됩니다.드래그 범위는 시작점이 끝점보다 왼쪽 위에 있어야 합니다.해결 방법알고리즘: 시뮬레이션최소와 최대 좌표 계산격자를 탐색하며 파일이 위치한 가장 위, 왼쪽, 아래, 오른쪽 좌표를 찾습니다.시작점은 가장 위와 가장 왼쪽의 좌표입니다.끝점은 가장 아래와 가장 오른쪽의 좌표입니다.격자 탐색이중 반복..

[Javascript] 프로그래머스 - 공원 산책
알고리즘 2025. 1. 3. 01:32

문제 설명직사각형 형태의 공원에서 로봇 강아지가 명령에 따라 산책을 합니다. 공원에는 장애물("X")과 이동 가능한 길("O")이 있으며, 시작 지점("S")에서 출발합니다.명령(routes)은 방향과 거리로 주어집니다. 예: "E 5" (동쪽으로 5칸 이동).강아지는 각 명령을 수행하기 전에 다음을 확인합니다:이동 방향으로 공원을 벗어나지 않는지 확인.이동 경로에 장애물("X")이 있는지 확인.위 조건 중 하나라도 위반하면 해당 명령은 무시됩니다.모든 명령을 수행한 후 강아지의 최종 위치를 반환합니다.제한사항공원 크기:세로(H): 3 ≤ H ≤ 50가로(W): 3 ≤ W ≤ 50명령:길이: 1 ≤ routes.length ≤ 50각 명령의 형식: "op n".방향(op): 북쪽(N), 남쪽(S), 서쪽..

article thumbnail
[Javascript] 프로그래머스 - 달리기 경주
알고리즘 2025. 1. 2. 23:58

문제 설명얀에서는 매년 달리기 경주가 열립니다.각 선수는 자기 앞의 선수를 추월할 때 해설진에 의해 이름이 불립니다.불린 이름의 선수가 바로 앞의 선수를 추월하며, 두 선수의 순위가 서로 바뀝니다.입력으로 1등부터 현재 등수 순서대로 담긴 선수 이름 배열 players와, 해설진이 부른 이름 배열 callings가 주어집니다. 모든 추월이 끝난 후 최종 선수 순위를 반환하세요.제한사항선수 배열 (players):길이: 5 ≤ players.length ≤ 50,000각 원소는 고유하며 알파벳 소문자로만 구성.문자열 길이: 3 ≤ players[i].length ≤ 10.추월 기록 (callings):길이: 2 ≤ callings.length ≤ 1,000,000추월 대상은 항상 players 배열에 포함..

article thumbnail
[Javascript] 프로그래머스 - 동영상 재생기
알고리즘 2025. 1. 2. 23:55

문제 설명동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 기능을 지원합니다.10초 전으로 이동:사용자가 "prev" 명령을 입력하면 현재 위치에서 10초 전으로 이동합니다.현재 위치가 10초 미만이면 처음 위치(00:00)로 이동합니다.10초 후로 이동:사용자가 "next" 명령을 입력하면 현재 위치에서 10초 후로 이동합니다.남은 시간이 10초 미만이면 마지막 위치(동영상 길이)로 이동합니다.오프닝 건너뛰기:현재 위치가 오프닝 구간(op_start ≤ 현재 위치 모든 명령이 끝난 후 최종 재생 위치를 "mm:ss" 형식으로 반환합니다.제한사항동영상 시간:모든 시간은 "mm:ss" 형식.동영상의 길이와 위치는 항상 유효한 범위 내에 있음.오프닝 시작 시간(op_start)은 항상..

article thumbnail
[Javascript] 프로그래머스 - 붕대 감기
알고리즘 2025. 1. 2. 23:51

문제 설명게임 캐릭터는 붕대 감기라는 기술로 체력을 회복하며 몬스터의 공격을 견뎌야 합니다.붕대 감기는 초당 일정량을 회복하며, 연속 시전에 성공하면 추가 회복량을 얻습니다.몬스터의 공격 시 체력이 감소하고, 체력이 0 이하로 떨어지면 캐릭터는 죽습니다.붕대 감기 정보, 최대 체력, 몬스터 공격 패턴이 주어질 때, 공격이 끝난 후 캐릭터의 체력을 반환하거나 죽었다면 -1을 반환합니다.제한사항붕대 감기:시전 시간: 1~50초.초당 회복량, 추가 회복량: 1~100.최대 체력: 1~1,000.공격 패턴:공격 시간은 오름차순, 중복 없음.공격 시간: 1~1,000.피해량: 1~100.해결 방법알고리즘: 시뮬레이션공격 간 간격 처리:공격 시간 간 차이를 계산해 회복 가능한 체력을 구합니다.최대 체력을 초과하지 ..

블록 코딩 서비스 회고
Project 2024. 5. 28. 04:30

작업 기간2024.01.05 ~ 2024.02.20팀원 구성1인 개발기술스택Typescript, HTML, CSS, git, jira, wiki (라이브러리, 프레임워크 사용 X)후기처음으로 라이브러리와 프레임워크를 사용하지 않고 개발을 해보았는데, 어려움이 많았습니다. 어떤 구조로 개발을 진행할 것인지, 렌더링과 상태관리는 어떻게 진행할 것인지 고민하였습니다. React와 비슷한 구조로 진행하였으나, 부족한 부분들이 많았던것 같습니다.요구사항을 만족하는 것을 우선적으로 개발을 진행하였으며, 모든 요구사항을 구현하였습니다. 하지만 설계에 시간을 더 사용해서 확장성과 재사용성이 높은 구조로 개발하였어야 한다고 생각합니다.애자일 방식으로 개발을 진행하였으며, 꾸준히 리팩토링을 진행하였습니다. 설계에서 부족한..

Jetty Chart 프로젝트 회고 (차트 라이브러리 개발)
Project 2024. 5. 28. 04:28

작업 기간2023.10.10 ~ 2023.11.17팀원 구성개발 6명기술스택프론트엔드 : React, Nextjs, CSS협업 및 배포 툴 : figma, gitlab, Notion, mattermost, jira후기개발을 하면서 차트 라이브러리를 많이 사용했었습니다. 하지만 원하는 기능이 없거나, SVG, Canvas 중 하나만 지원하거나, 디자인이 마음에 안드는 경우가 있었습니다. 이러한 부분들을 개선하고자 차트라이브러리 개발을 기획하였습니다.오픈소스로 개발을 진행하며, 누구나 기여할 수 있도록하며, NPM에 배포하여 실제 사용자들을 받는 것을 첫번째 목표로 하였습니다. 최대한 다양한 기능들을 지원 하도록 개발을 하였으며, NPM에 배포한 후 주간 1400회의 다운로드를 기록하는 성과를 가질 수 있었..

아이돈케어 프로젝트 회고 (아이 용돈 관리 어플리케이션 개발)
Project 2024. 5. 28. 04:28

작업 기간2023.08.28 ~ 2023.10.06팀원 구성프론트엔드 : 3명백엔드 : 3명기술스택Typescript, React, Tailwind, PWA, React Query, Recoil, Jest, Figma, Jira, Git 후기PWA를 사용해서 금융앱을 만드는 프로젝트로 진행하였습니다. 마이데이터를 사용해서 실제 금융 서비스를 구현해보고 싶었는데, 마이데이터는 개인이  사용할 수 없어서 더미데이터를 사용해야 했습니다.팀원에 개발에 익숙하지 않은 팀원이 많아서 이번 프로젝트는 학습을 목표로 개발을 하였습니다. 프론트에서는 PWA, Recoil, React Query, Jest를 학습했습니다.결제, 이체, 조건 이체(미션), 관계 설정(부모 자식) 등의 기능으로 금융 서비스를 제공하는 앱을 만..

검색 태그