JavaScript
-
[JS/ Node.js ] 백준 2588 문제 - 1의 자리수, 10의 자리수 , 100의 자리수 , 각 자리수알고리즘/코딩 테스트 2023. 8. 16. 19:26
2588번 문제 각 자리를 구해야 하는 문제이다. 추후에 각 자리 수를 구하는 공식을 작성해봤다. Math.floor( (number % 원하는자리수 * 10)/ 원하는 자리수) 위 공식을 이용하여 반복문 처리를 했다. const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(Number) const answer = [] for (let i = 1 ; i
-
[JS/ Node.js ] 백준 10171, 10172 문제 - 백틱, 백 슬래시알고리즘/코딩 테스트 2023. 8. 16. 19:19
10171번 문제가 고양이 그림을 출력하는 문제이며 10172번은 개 그림을 출력하는 문제다. 10171번 문제 고양이 그림을 출력하는 문제를 먼저 살펴보자. 위 그림을 출력해야하는 문제다. 처음 접근은 우선 여러 줄을 한꺼번에 출력하게 만들었다. console.log(``) 백틱을 사용하면 여러 줄을 한 번에 출력할 수 있다. 백틱을 사용하여 출력 부분만 복사를 하여 넣었는데 에러가 뜨며 원하는 결과대로 출력되지 않았다. 백 슬래시(\)를 사용할 때는 두 번 입력해줘야 제대로 출력이 된다. 이 부분을 간과하고 바로 출력하여 에러가 발생하던 것이였다. 백 슬래시를 두 번 입력하니 원하는 대로 출력이 되었다. console.log(`\\ /\\ ) ( ') ( / ) \\(__)|`) 10172번 문제 그..
-
[백준 2589] 보물섬 - bfs,너비탐색 알고리즘, javascript,nodejs알고리즘/코딩 테스트 2023. 2. 17. 15:17
문제 : https://www.acmicpc.net/problem/2589 2589번: 보물섬 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 www.acmicpc.net 알고리즘 : 1. 이 문제는 전형적인 bfs 문제이지만 시작 지점을 모두 검사해보아야 한다. 2. 따라서 2중 for문을 돌면서 거리 탐색을 한다. 문제풀이 : 1. 입력값에서 row와 col, map,dist를 설정한다. const [row , col] = input[0].split(' ').map(Number) const map = input.slice(1).map(v=>v.split('..
-
[백준 7562] 나이트의 이동 - bfs, 너비탐색 알고리즘, javascript, node.js알고리즘/코딩 테스트 2023. 2. 17. 11:46
문제 : https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 알고리즘 : 1. 이 문제는 전형적인 bfs 문제이다. 2. 출발지부터 하나씩 나이트를 이동시켜 최소 횟수를 출력시키면 된다. 3. 횟수를 셀때는 visit[ny][nx] = visit[y][x] + 1 로 설정해서 이동횟수를 설정해야 한다. 문제 풀이 : 1. input 에서 각각의 테스트 별로 n, 현재 위치, 목표 위치를 저장한다. for (let i=0;iArray.from({len..
-
[백준 2606] 바이러스 - dfs , javascript알고리즘/코딩 테스트 2023. 2. 15. 19:45
문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 알고리즘 0. 문제 해석 : 첫 번째 컴퓨터와 연결되어 있는 컴퓨터를 모두 찾는 문제이다 1. set 이용 : 중복되는 컴퓨터가 있을 수 있으니 set을 이용한다. 2. dfs 함수 : 반복되는 동작을 수행한다. 문제 풀이 1. set과 stack에 초기 값을 넣어주고 dfs 함수를 부른다. const set = new Set() let stack = [1] while(stack.length){ ..
-
[백준 14503] 로봇 청소기 - 구현, node.js,javascript알고리즘/코딩 테스트 2023. 2. 14. 18:18
문제 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 로봇 청소기와 방의 상태가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 방은 NXM 크기의 직사각형으로 나타낼 수 있으며, 1×1$1 \times 1$ 크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북 중 하나이다..
-
[백준 2444] 별 찍기 7 - node.js, javascript, 2442,2443알고리즘/코딩 테스트 2023. 2. 14. 10:07
문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 2442와 2443의 결합이다. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 5 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. * *** ***** ******* ********* ******* ***** *** * 완성 코드 const input = require('fs').readFileSync('/dev/stdin').toString().trim() *1 const answer = [] //2442 for(let i=1;i0;i--){..
-
[백준 10986] 나머지 합 - javascript,node.js,구간합,누적합알고리즘/코딩 테스트 2023. 2. 13. 14:59
문제링크 : https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 알고리즘 : 1. n개의 수를 누적합을 저장한다. 2. 아래 구간합의 나머지 수학 공식을 알아야 한다. - 즉 총합의 나머지가 0과 같아야 한다 했으니 결국 좌변의 합에 % m을 한 것과 우번의 합에 % m을 한것이 같아야 한다. 3. 조합을 이용한다. 즉 다른 n개 중 순서 상관없이 r개를 뽑는다. n!/(n-r)!r! 즉 하나의 식으..