분류 전체보기

Algorithm/Programmers

[알고리즘/프로그래머스/고득점Kit] 기능개발(JS)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 큐에 각 작업이 걸리는 시간을 저장한다. 2. 큐를 돌면서 최댓값보다 작거나 같으면 cnt를 증가시키고, 아니면 answer에 같이 배포할 날짜를 넣어주고 maxVal를 갱신한다. 언뜻 보면 간단한 거 같지만 헷갈리는 부분들이 있었다. 먼저, 큐의 첫 번째 값은 미리 cnt를 세고 시작한다. 이를 위해 maxVal를 queue[0]으로 초기화하고..

Algorithm/BOJ

[알고리즘/백준/2636] 치즈(Nodejs, BFS)

문제 https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 풀이 치즈의 바깥 가장자리 부분만 돌면서 값을 변경해야 하는데, 이를 위해 치즈(1)이 아닌 바깥쪽(0)을 BFS 탐색한다. 0이면 BFS로 계속 탐색하고, 1이면 nodes에 넣고 탐색이 끝난 후에 0으로 변경해 준다. - [0, 0]에서 시작해 bfs - [nx, ny]가 0이면 bfs 대상 -> queue.push() - [nx, ny]가 1이면 녹일 대상 -> 0으로 변경 - 이 과정을 치즈가 없을 때까..

Algorithm/Programmers

[알고리즘/프로그래머스/카카오] 메뉴 리뉴얼(JS)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 2명 이상이 주문한 2개 이상의 조합을 구해야 한다. - 각 course 돌면서 course 개수만큼 order의 조합 만들기(DFS) - 구한 조합 돌면서 [조합]의 개수 증가시키기 ** 오름차순 정렬 필요 - 각 개수에 해당하는 최댓값 찾아서 -> 최댓값 && 해당 개수인 조합 answer.push() - answer.sort() 오름차순 주의해야할 점은 "WX"와 "XW"를 같은 ..

Algorithm/Programmers

[알고리즘/프로그래머스/카카오] 두 큐 합 같게 만들기(JS, 투포인터)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 길이가 같은 두 개의 큐에서 배열의 첫 번째 원소를 다른 배열에 마지막에 넣는 과정을 반복했을 때 두 큐의 합이 같아지기 위한 최소 작업 횟수를 구하는 문제이다. 처음에는 이해가 어려워서 해당 블로그의 그림을 참고하였다. queue1과 queue2를 합친 하나의 배열 queue를 만든다. p1을 queue1의 시작점(0)으로, p2를 queue2의 ..

Algorithm/BOJ

[알고리즘/백준/14502] 연구소(BFS, DFS, Nodejs)

문제 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 0은 빈 칸, 1은 벽, 2는 바이러스가 있고, 바이러스는 4방향으로 퍼져나갈 수 있다. 이때 벽을 3개 세운 뒤 바이러스가 퍼질 수 없는 영역인 안전 영역의 최대 크기를 찾는 문제이다. 1. 0인 구간 가운데 3개 고르기 (3중 for문 또는 DFS) 2. 2인 경우 큐에 넣어서 BFS 돌리면서 2로 바꾸고 3. 전체 탐색하면서 0인 곳 개수 세서 최댓값 찾기 이때 주의해야할 점은 3개를 선정하고..

Algorithm/BOJ

[알고리즘/백준/13023] ABCDE(Node.js, BFS)

문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 풀이 문제를 읽고 숫자고르기와 같이 각 요소에서 DFS 탐색을 해야 한다는 걸 알 수 있었다. 주어진 입력으로 양방향 그래프를 만들고, 각 1~N에서 각각 방문 표시 배열(ch)을 이용한 DFS를 한다. 이때 flag 변수를 사용하여 연결된 노드가 5개가 나오는 경우 return 해서 DFS를 종료한다. 또한 flag가 1인 경우, 즉 A, B, C, D, E가 존재하는 경우, for문을 종료한다. flag가 1이면 1을 아니면 0을 출력한다. 처음에는 DFS에서 연결된 개수를 반환해주고, 다 돌..

Algorithm/BOJ

[알고리즘/백준/16234] 인구 이동(BFS, Node.js)

문제 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 풀이 이전에 풀었던 방식과 유사하지만 nodes라는 하나의 배열을 이용해 인구 이동을 조금 더 간단하게 구현하였다. 2중 for문으로 각각의 땅에서 BFS를 돌고 이동 가능한 경우 nodes 배열에 담아둔다. BFS가 끝나면 nodes 배열에 담긴 좌표들은 인구 이동을 해준다. nodes 배열에 자기 자신만 담긴 경우(nodes.length === 1) 이동하지 못했다는 의미이..

Projects

[NutriNotes] 시맨틱 태그 적용하기

[HTML] HTML 시맨틱 태그(Semantic Tags) 시맨틱 태그란? 프로그래밍에서 시맨틱은 코드의 의미를 나타낸다. HTML의 시맨택 태그는 태그만 보고도 역할이나 위치를 알 수 있도록 만든 태그이다. 예를 들어, 은 페이지에서 최상위 제목인 bichoninthefront.tistory.com HTML 시맨틱 태그에 대해 공부하고, 이번에 진행하고 있는 프로젝트에 적용해 보았다. 시간이 걸리는 작업이었지만, 각 페이지의 구조에 대해 다시 한번 생각해 보고, 페이지 내에서 각 구획의 역할에 대해 생각해 볼 수 있었다. 또한, 이전 포스팅에서 살펴봤던 것과 같이 태그만으로도 구조를 파악할 수 있어 HTML의 가독성과 유지보수성을 높일 수 있었다. 사실 복잡한 구조를 가진 페이지는 없었지만, 이 과정..

개발자 김비숑
'분류 전체보기' 카테고리의 글 목록 (5 Page)