본문 바로가기

백준/골드8

[node.js, 백준]16197 - 두 동전 목차 문제링크https://www.acmicpc.net/problem/16197문제N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, 두 동전의 위치는 다르다.버튼은 "왼쪽", "오른쪽", "위", "아래"와 같이 4가지가 있다. 버튼을 누르면 두 동전이 버튼에 쓰여 있는 방향으로 동시에 이동하게 된다.동전이 이동하려는 칸이 벽이면, 동전은 이동하지 않는다.동전이 이동하려는 방향에 칸이 없으면 동전은 보드 바깥으로 떨어진다.그 외의 경우에는 이동하려는 방향으로 한 칸 이동한다.이동하려는 칸에 동전이 있는 경우에도 한 칸 이동한다.두 동전 중 하나만 보드에서 떨어뜨.. 2024. 6. 7.
[node.js, 백준]9663 - N-Queen 목차 문제링크https://www.acmicpc.net/problem/9663문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (1 ≤ N  출력첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 주저리로직은 이해했으나 시간 초과가 일어나서 최적화하는데 애를먹었고 결국 최적화코드는 답을봐서 한번더 풀어야할 것같다. Queen을 N x N칸에 N개 배치할때 핵심은 한 줄에 하나씩 퀸이 꼭들어가야하는점을 생각해야했다.(경우의 수 줄이기) 그리고 반복문으로 해결하였는데 하나의 퀸을 배치하면 그 공격 대상에 다른 퀸이있는지 체크를 해줘서 .. 2024. 5. 21.
[node.js,백준]2580 - 스도쿠 목차 문제링크https://www.acmicpc.net/problem/2580문제스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다.각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다.굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다.위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 줄 빈칸.. 2024. 5. 21.
[node.js,백준]1987 - 알파벳 목차   문제링크https://www.acmicpc.net/problem/1987문제세로 𝑅$R$칸, 가로 𝐶$C$칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1$1$행 1$1$열) 에는 말이 놓여 있다.말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다.좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다.입력첫째 줄에 𝑅$R$과 𝐶$C$가 빈칸을 사이에 두고 주어진다. (1≤𝑅,𝐶≤.. 2024. 5. 16.
[node.js,백준]13398 - 연속합 2 목차   문제링크https://www.acmicpc.net/problem/13398문제n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 또, 수열에서 수를 하나 제거할 수 있다. (제거하지 않아도 된다)예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 수를 제거하지 않았을 때의 정답은 12+21인 33이 정답이 된다.만약, -35를 제거한다면, 수열은 10, -4, 3, 1, 5, 6, 12, 21, -1이 되고, 여기서 정답은 10-4+3+1+5+6+12+21인 54가 된다.입력 첫째 줄에 정수 n(1 ≤.. 2024. 5. 11.
[node.js,백준]2133 - 타일 채우기 목차 문제링크https://www.acmicpc.net/problem/2133문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다.  출력 첫째 줄에 경우의 수를 출력한다.  주저리쉽지않은 문제였다 정답을 보면서했다 ㅠ풀이는 일단 마지막에 3이 채워지려면 2칸을 차지하는 3가지의 수가있다.그리고 홀수들은 답이 되지못하는거 까진 알았다.그럼 이제 짝수번부터 계산을 해야한다. 풀이 입력 데이터 처리파일 시스템 모듈(fs)을 사용하여 입력을 받습니다. 주석 처리된 부분은 실제 실행 환경에서 사용될 예정이며, 테스트를 위해 input 변수에 데이터를 직접 할당합니다.입력 데이터는 문자열에서 숫자로 변환되어 처리됩니다. 타일링 함.. 2024. 5. 10.
[node.js,백준]11054 - 가장 긴 바이토닉 부분 수열 목차 문제링크https://www.acmicpc.net/problem/11054문제수열 S가 어떤 수 Sk를 기준으로 S1  Sk+1 > ... SN-1 > SN을 만족한다면, 그 수열을 바이토닉 수열이라고 한다.예를 들어, {10, 20, 30, 25, 20}과 {10, 20, 30, 40}, {50, 40, 25, 10} 은 바이토닉 수열이지만,  {1, 2, 3, 2, 1, 2, 3, 2, 1}과 {10, 20, 30, 40, 20, 30} 은 바이토닉 수열이 아니다.수열 A가 주어졌을 때, 그 수열의 부분 수열 중 바이토닉 수열이면서 가장 긴 수열의 길이를 구하는 프로그램을 작성하시오.입력 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N.. 2024. 5. 10.
[Node.js,백준]1377 - 버블 소트 목차   문제 입력 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력정답을출력한다.  풀이24년 3월 28일날 풀었으나 티스토리로 이관 정렬을 이용해서 푸는 문제 이다. 실제로 버블 정렬으로 풀면 시간 초과가 일어나기 때문에 다른 방법으로 풀어야 한다.버블정렬엔 어떠한 규칙이있는데 앞의수가 뒤의수보다 클때 ex)(10 > 5)앞의수는 뒤의수보다 작을때까지 어디든 이동이 가능하지만 뒤의 수는 앞으로 한번씩만 이동한다는 점이다.이 점을 이용하기 위해arrs라는 새로운 배열을 만들껀데 최초 배열의 [값, i(순서)]를 저장하고 값을 오름차.. 2024. 5. 8.