[백준] 9663번 N-Queen 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 9663번 N-Queenhttps://www.acmicpc.net/problem/9663  문제N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (1 ≤ N 출력첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다.  문제 풀이 문제 유형 브루트포스 알고리즘백트래킹 풀이 방법 도출 문제는 N x N 크기의 체스판에서 N개의 퀸을 서로 공격할 수 없도록 배치하는 방법의 수를 구하는 문제입니다.퀸은 같은 행과 같은 열과 대각선 방향으로 공격할 수 있습니다. 퀸의 공격 방식은 아래와 같습니다. 같은 행에 놓을 수 없습니다.같은 열에 놓을 ..
[백준] 1541번 잃어버린 괄호 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 1541 잃어버린 괄호https://www.acmicpc.net/problem/1541  문제세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.입력첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.출력첫째 줄에 정답을 출력한다.  문제 풀이  문제..
[백준] 1018번 체스판 다시 칠하기 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 1018번 체스판 다시 칠하기https://www.acmicpc.net/problem/1018 문제지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 ..
[백준] 20055번 컨베이어 벨트 위의 로봇 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 20055번 컨베이어 벨트 위의 로봇https://www.acmicpc.net/problem/20055  문제  길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다.벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내구도는 Ai이다. 위의 그림에서 1번 칸이 있는 위치를 "올리는 위치", N번 칸이 있는 위치를 "내리는 위치"라고 한다. 컨베이어 벨트에 박스 모양 로봇을 하나씩 올리려고 한다. 로봇은 올리는 위치에만 올릴 수 있..
[백준] 3273번 두 수의 합 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 3273번 두 수의 합 https://www.acmicpc.net/problem/3273  문제n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i i, aj)쌍의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000)출력문제의 조건을 만족하는 쌍의 개수를 출력한다.  문제 풀이 문제 유형정렬두 포인터  풀이 도출 과정주어진 수열에서 두 개의 수를 선택하여 합이 x가 되는 쌍의 개..