전체 글

전체 글

    [JS][백준]9020_골드바흐의 추측

    문제 번호 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 알고리즘 분류 수학 정수론 소수 판정 에라토스테네스의 체 문제 풀이 짝수를 두개의 소수로 나타내는 문제이다. 문제에서 주어진 입력의 범위가 10000 이하 이기때문에 prime 이라는 배열을 만들어서 10000 이하의 소수들을 모두 저장해주었다. 에라토스테네스의 체 만드는거랑 같다고 생각한다. function makePrime() { for (let i = 2; i n) break; if (sum + prime[j] === n) {..

    [JS][백준]1712_손익분기점

    문제 번호 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 알고리즘 분류 수학 사칙연산 문제 풀이 문제풀이 자체는 쉽다. 노트북을 X 대 판다고 했을때 A+B*X > C*X 가 되는 X를 찾으면 된다. '이상'이 아니라 초과 가 되어야 하기때문에 A/(B-C) > X 가 되는 X값을 찾기 위해서 'parseInt( A / (B-C) ) + 1' 을 활용했다. 결과는? 틀렸따. 질문게시판을 찾아보니 parseInt 와 Math.floor()의 동작방식이 달라서 이러한 문제가 생길 수 있다고 한다. 글 읽기 - nod..

    [JS][백준]10818_최소, 최대

    문제 번호 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 알고리즘 분류 수학 구현 문제 풀이 Math의 min과 max 메서드를 사용해서 문제를 풀려고 했다. 그러나 Math.min() 과 Math.max()의 경우 배열의 크기가 10^7을 넘어가면 문제가 발생한다고 한다. Maximum call stack size exceeded with Math.min and Math.max I have js function to find min and max values in 2d a..

    [JS][백준]2636_치즈

    문제 번호 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 알고리즘 분류 구현 그래프 이론 그래프 탐색 너비 우선 탐색 시뮬레이션 문제 풀이 BFS를 사용하면 간단하게 풀 수 있는 문제이다. 문제에서 가장자리의 'X'에는 치즈를 놓지 않는다고 했다. 그러므로 (0,0)은 항상 'X' 이며, 항상 치즈가 없다. 때문에 BFS를 (0,0)에서 시작하여 '상,하,좌,우'로 탐색하면서 다음칸이 '공기'일때와 '치즈'일때를 나누어서 구현하면 된다. 다음칸이 '공기'일때는 Queue에 넣어주고 보통의 BFS처럼 진행하고 '치즈'일때는 Qu..

    [JS][백준]17216_가장 큰 감소 부분 수열

    문제 번호 17216번: 가장 큰 감소 부분 수열 수열 A가 주어졌을 때, 그 수열의 감소 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 8, 7, 3, 6, 5} 인 경우에 합이 가장 큰 감소 부분 수열 www.acmicpc.net 알고리즘 분류 다이나믹 프로그래밍 문제 풀이 많이 등장하는 DP 알고리즘 문제이다. 가장 큰 증가, 감소, 이어지는, 가장 긴 등등 여러가지 형태로 바뀌어서 많이 나오는걸 봤었다. 문제에서 주어지는 수열을 내용을 모두 검사한다. DP[i]는 i 번째 인덱스를 마지막으로 하는 감소하는 부분수열중 합이 가장 클때의 값이다. DP[3] = 89라면 인덱스 3의 내용을 마지막으로 하는 감소 부분 수열..

    [JS][백준]16943_숫자 재배치

    문제 번호 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0 www.acmicpc.net 알고리즘 분류 수학 브루트포스 알고리즘 조합론 문제 풀이 주어진 숫자 A로 만들수 있는 모든 숫자들을 만들어보고 조건에 맞는지 확인하면된다. 조건은 A를 이루는 숫자들을 모두 사용해야하고, 그 결과물이 B보다 작아야한다. 브루트포스 알고리즘을 사용해서 문제를 해결하였으나 DFS를 통하여 풀이를 진행해도 가능하다. 전체코드 let s = []; let answer = -1; function check(s, b, n){ s = Num..

    [JS][백준]16928_뱀과 사다리 게임

    문제 번호 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 알고리즘 분류 그래프 이론 그래프 탐색 너비 우선 탐색 문제 풀이 BFS를 사용하면 간단하게 풀 수 있는 문제이다. 뱀이나 사다리를 만나면 주사위를 굴리는 횟수를 증가시키지않고 연결된 칸으로 이동한다는점에 주의해서 문제를 풀면된다. 시작칸은 '1' 이므로 1에서부터 시작하여 1,2,3,4,5,6 을 증가시키면서 BFS를 통하여 탐색을 진행한다. board 라는 배열을 사용하여 문제에서 주어진 사다리와 뱀을 ..

    [JS][백준]1719_택배

    문제 번호 1719번: 택배 첫째 줄에 두 수 n과 m이 빈 칸을 사이에 두고 순서대로 주어진다. n은 집하장의 개수로 200이하의 자연수, m은 집하장간 경로의 개수로 10000이하의 자연수이다. 이어서 한 줄에 하나씩 집하장간 경 www.acmicpc.net 알고리즘 분류 그래프 이론 다익스트라 플로이드–와샬 문제 풀이 다익스트라와 플로이드-와샬 알고리즘을 고민하다가 플로이드-와샬이 좀더 친숙해서 플로이드-와샬로 문제를 풀었다. i 에서 j 로 갈때 k를 거쳐서 가는것이 더 비용이 적게들면 arry[i][j]의 값을 수정한다는 플로이드-와샬의 내용을 살짝 응용하면 된다. city라는 2차원 배열을 생성해서 문제에서 주어진 집하장간의 경로를 입력하고 플로이드-와샬 알고리즘에 사용하여 집하장간의 최소값을..