본문 바로가기
반응형

PS 문제 풀이/Baekjoon446

[BOJ] 백준 3985 롤 케이크 출처: https://www.acmicpc.net/problem/3985 Input 10 3 2 4 7 8 6 9 Output 3 1 1..N 방청객 순서대로 기대하는 케이크 개수와 받을 수 있는 케이크를 처리하므로 순차적으로 기존 값과 비교하며 구할 수 있습니다. ① 기대하는 케이크 개수 ▶ [a b] → a~b번까지 케이크 개수 = b - a + 1 ② 실제 받을 수 있는 케이크 개수 ▶ 앞선 방청객들이 받은 케이크를 제외해서 셉니다. #include using namespace std; bool canTake[1001]; int L, N; int firstCnt = 0, firstAns, secondCnt = 0, secondAns; int main() { ios_base::sync_with_std.. 2021. 2. 26.
[BOJ] 백준 1173 운동 출처: https://www.acmicpc.net/problem/1173 Input 5 70 120 25 15 Output 10 - 초기 맥박 상태는 문제에서 제시한 최소 맥박 상태와 동일. - N분의 운동을 하기 위한 최소시간 (운동 + 휴식)을 찾는 문제로, 맥박 상태에 따라 최대한 운동을 하는 Greedy 방식 이용 - 운동을 하지 못하는 상태는 초기 상태 m (= 최소 맥박 조건)에서 한번 운동했을 때 최대 맥박(= M)을 초과하는 경우 #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, m, M, T, R; cin >> N >> m >> M >.. 2021. 2. 26.
[BOJ] 백준 2580 스도쿠 출처: https://www.acmicpc.net/problem/2580 Input 0 3 5 4 6 9 2 7 8 7 8 2 1 0 5 6 0 9 0 6 0 2 7 8 1 3 5 3 2 1 0 4 6 8 9 7 8 0 4 9 1 3 5 0 6 5 9 6 8 2 0 4 1 3 9 1 7 6 5 2 0 8 0 6 0 3 7 0 1 9 5 2 2 5 8 3 9 4 7 6 0 Output 1 3 5 4 6 9 2 7 8 7 8 2 1 3 5 6 4 9 4 6 9 2 7 8 1 3 5 3 2 1 5 4 6 8 9 7 8 7 4 9 1 3 5 2 6 5 9 6 8 2 7 4 1 3 9 1 7 6 5 2 3 8 4 6 4 3 7 8 1 9 5 2 2 5 8 3 9 4 7 6 1 각 칸에서 확인해야 영역은 크게 3가.. 2021. 2. 26.
[BOJ] 백준 1347 미로 만들기 출처: https://www.acmicpc.net/problem/1347 Input 5 RRFRF Output .. .# 문제에서 N이 0보다 크고 50보다 작다고 했으므로 상하좌우 어떤 방향이든 한 방향으로만 가는 경우를 고려해서 미로의 크기를 101 × 101 설정 따라서 시작점을 배열의 가운데 지점 (50, 50)으로 설정 이 문제에서는 map[101][101] 크기에서 실제 미로의 크기를 추출해야 합니다. 직사각형 미로에서 기준점격인 시작점과 끝점을 알아야 합니다. 시작점과 끝점을 시작 위치(50,50)에서 이동할 때마다 비교해서 x, y의 최솟값(왼쪽 맨 위)이 시작점, x,y의 최댓값(오른쪽 맨 아래)이 끝점이 되도록 갱신해줍니다. 최종적으로는 직사각형 범위만큼을 출력합니다. #include .. 2021. 2. 26.
[BOJ] 백준 1986 체스 출처: https://www.acmicpc.net/problem/1986 Input 4 4 2 1 4 2 4 1 1 2 1 2 3 Output 6 일반 체스와 다른 점은 Pawn은 상대팀의 말을 잡을 수 없기에 공간만 차지하고 있다고 보면 됩니다. Queen → Knight → Pawn 순으로 위치를 입력받습니다. 움직일 수 있는 Queen과 Knight에 대해 잡을 수 있는 공간을 board[][]에 표시합니다. #include using namespace std; char board[1002][1002]; int N, M, cnt, answer = 0; int Q_dx[] = { 0, 0, -1, 1, -1, -1, 1, 1 }; int Q_dy[] = { -1, 1, 0, 0, -1, 1, -1, .. 2021. 2. 26.
[BOJ] 백준 1331 나이트 투어 출처: https://www.acmicpc.net/problem/1331 Input A1 B3 A5 C6 E5 F3 D2 F1 E3 F5 D4 B5 A3 B1 C3 A2 C1 E2 F4 E6 C5 A6 B4 D5 F6 E4 D6 C4 B6 A4 B2 D1 F2 D3 E1 C2 Output Valid 6 x 6 체스판에서 나이트가 이동하므로 나이트 투어를 위해서는 처음 지점을 포함해서 총 36개 칸을 지나쳐야 합니다. 먼저, 주어진 경로대로 나이트가 이동할 수 있는지 확인합니다. 나이트가 한번에 이동할 수 있는 지점은 아래와 같습니다. 주어진 입력은 모든 칸을 순서없이 나열한 것이므로 이동 가능 여부만 확인하며, 별도 모든 칸을 투어했는지는 확인할 필요가 없습니다. 그리고, 마지막 지점에서 다시 처음지점으.. 2021. 2. 26.
[BOJ] 백준 1107 리모컨 출처: https://www.acmicpc.net/problem/1107 Input 5457 3 6 7 8 Output 6 ① 숫자 버튼 없이 +,-로만 조작하는 경우 abs(N - 100); ② 숫자 버튼으로 이동 후 +,-로 조작하는 경우 모든 채널에 대해서 고장 버튼을 고려해서 이동가능한지 확인 후, 해당 채널에서 +,-를 몇 번 눌러야 하는지 확인합니다. Q. N의 최대값은 500,000인데 0 ~ 1000,000채널까지 탐색하는 이유? A. 고장난 버튼에 따라서 50만 위에서 -버튼을 누르는게 좋을 수도 있기 때문에 여유롭게 크기를 잡음 Q. 수학적인 접근 방법이 있을까? N 채널의 차이를 최소로해서 Greedy 방식으로 접근할 수 있지만, Input 1555 8 0 1 3 4 5 6 7 9 O.. 2021. 2. 26.
[BOJ] 백준 3048 개미 출처: https://www.acmicpc.net/problem/3048 Input 3 3 ABC DEF 2 Output CDBEAF 개미 그룹이 서로 →← 방향으로 맞닥뜨렸을 때 swap이 일어나는 것을 구현 ▶ 오른쪽으로 이동중인 개미가 왼쪽으로 이동중인 개미와 마주쳤을 때 서로의 위치를 바꾼다. 개미의 정보를 구조체로 처리 ▶ dir : 개미의 방향, ID: 개미 이름 #include using namespace std; #define RIGHT 0 // 오른쪽으로 이동 #define LEFT 1 // 왼쪽으로 이동 struct ant { int dir; char ID; }; // 개미는 총 알파벳 수만큼 존재 struct ant temp, ants[27]; void swap(int A, int B.. 2021. 2. 26.
[BOJ] 백준 5566 주사위 게임 출처: https://www.acmicpc.net/problem/5566 Input 10 5 0 0 5 6 -3 8 1 8 -4 0 1 3 5 1 5 Output 5 ① 주사위로 이동한 위치 ② 칸에 적힌 지시사항으로 이동한 위치 → 움직인 위치가 도착점(=N)을 지나쳤는지 확인 #include using namespace std; int N, M, board[1001], dice[1001]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> M; for(int i = 1; i > board[i]; for(int i = 1; i > dice[i]; int answer = 0, cur = 1; w.. 2021. 2. 26.
[BOJ] 백준 10990 별 찍기 - 15 출처: https://www.acmicpc.net/problem/10990 Input 4 Output * * * * * * * 입력 값 n이 증가함에 따라 별들의 간격과 벌어지는 규칙을 쉽게 확인할 수 있습니다. ▶ 첫번째 줄 n - 1 만큼의 공백과 『*』 ▶ 첫번째 줄을 제외하고는 아래와 같은 규칙을 가집니다. ① n - i 만큼의 공백 문자 출력 후 『*』 ② (i -1) * 2 - 1 만큼의 공백 문자 출력 후 『*』 출력 후 줄넘김 ▶ [문제] BOJ 별 찍기 시리즈 [문제] BOJ 별 찍기 시리즈 [BOJ] 2438 별 찍기 - 1 [BOJ] 2439 별 찍기 - 2 [BOJ] 2440 별 찍기 - 3 [BOJ] 2441 별 찍기 - 4 [BOJ] 2442 별 찍기 - 5 [BOJ] 2443 .. 2021. 2. 26.
반응형