본문 바로가기
728x90

🥇Baekjoon Solutions73

[C++] 백준 1920번: 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 sort를 통해 정렬되어있는 수들을 인덱스에 따라 이진탐색을 진행해 줍니다. 여기서 이진탐색을 재귀적으로 수행하게되면 시간초과가 발생하므로 whlie 루프를 활용하여 이진탐색을 진행합니다. #include #include #include using namespace std; vectorv; void BS(int s, int e, int n) {.. 2021. 9. 24.
[C++] 백준 11005번: 진법 변환2 https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 조건 10진법 N을 B진법으로 변화 십진법으로 표현이 불가능 하다면 A:10, B:11 ... Z:35 이와 같이 문자로 표현 입력: N(1~10^9) B(2~36) 출력: 10진법 N을 B진법으로 출력 #include #include #include using namespace std; int main() { vectorlist; int N, B; cin >> N >> B; int sub .. 2021. 9. 24.
[C++] 백준 12100번: 2048 (Easy)(삼성SW기출) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 조건 번호가 써져있는 블록 이동시키기 이동하는 방향 젤 앞에 있는 것부터 처리해줌 NxN보드사이즈(1~20) 한쪽 방향으로 이동했을 때 해당방향으로 인접해있으면서 같은 수를 가지고 있어야 합쳐짐 입력: N(1~20) 보드 각 칸의 값(0은 빈칸) 출력: 최대 5회 이동 후 최대값이 가장 큰 수 풀이과정 1. 한쪽으로 밀기 2. 0이 아닌 숫자만 추출 3. 연속된 두 숫.. 2021. 9. 22.
[C++] 백준 13460번: 구슬 탈출2(삼성SW기출) https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 조건 보드에 빨간 구슬과 파란 구슬을 하나씩 넣어 빨간 구슬을 구멍으로 빼내는 게임 N(행), M(열) 옵션 -> 왼쪽, 오른쪽, 위쪽, 아래쪽으로 기울이기 가능(라인따라 쭉이동) 빨간 구슬과 파란 구슬이 동시에 구멍에 빠져도 실패(-1) 빨간 구슬과 파란 구슬이 동시에 같은 위치에 있을 수 없음 '.':빈 칸, '#':벽, 'O':구멍, 'R':.. 2021. 9. 19.
[C++] 백준 19237번: 어른 상어(삼성SW기출) https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 조건 번호가 작을 수록 상어가 강력함 NxN 크기의 격자중 M개의 칸에 상어가 한 마리씩 들어있음 1초마다 모든상어가 인접한 상하좌우 칸으로 이동함 이동한 칸에 냄새를 뿌림(k번 이동하면 냄새가 사라짐) 이동할 칸의 우선순위 아무 냄새가 없는 칸 > 자신의 냄새가 있는 칸(인접한 모든 칸이 빈칸이라도 우선순위 적용)) 자신의 냄새 칸이 여러개라면 상어마.. 2021. 9. 18.
[C++] 백준 15684번: 사다리 조작(삼성SW기출) https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 조건 N:세로선 수, H:가로선 후보, M:가로선 개수(미리 놓려질 수) 임의의 가로 선수가 주어졌을 때 가로선을 추가해서, 사다리 결고가 i출발해서 i로 가는 결과를 만들기 그렇게하기 위해 추가해야할 최소 가로선 수 입력 N(2~10), M(0~(N-1)xH), H(1~30) 가로선의 정보는 a b로 나타낸다(b번과 b+1번 세로선을 a번 점선 위치에서 연결) 출력: 가로선 개수의 최솟값을 출.. 2021. 9. 17.
[C++] 백준 14502번: 연구소(삼성SW기출) https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 조건분석 N(행) x M(열) 직사각형 지도 0:빈칸, 1:벽, 2:바이러스 바이러스는 상하좌우로 퍼져나감 새로 벽 3개를 세울 수 있음 입력:N M (2~8) 빈칸, 벽, 바이러스의 위치 출력:얻을 수 있는 안전 영역의 최대 크기 문제풀이 백트레킹 방법에 착안하여 3개의 벽을 세울 수 있는 모든 경우를 완전탐색형식으로 진행하고 각각에 대해 BFS 그래프 탐색을 통해 바이러스의 전파를 진행시켜 줍니다. 이후 .. 2021. 9. 6.
[C++] 백준 10251번: 운전 면허 시험(ICPC 기출) https://www.acmicpc.net/problem/10251 10251번: 운전 면허 시험 만일 G 이하의 연료량으로 s에서 t까지 가는 것이 가능하다면 가능한 한 빨리 도착했을 때 걸리는 시간을, 불가능하다면 -1을 출력한다. www.acmicpc.net 최초접근(오답풀이) BFS와 DP를 사용하여 BFS를 통해 s에서 t에 도달한 경로중 연료(G)를 넘지 않는 경로들 중 가장 빠른 시간을 가지는 값을 출력하도록 합니다. 그러나 이 방법은 queue에 너무 많은 원소들이 생겨 메모리초과 오류가 발생합니다. 조건 M행, N열 격자 그리드에서 운전 면허 시험을 치룸 규칙 3가지 1. s(0,0)지점에서 t(N-1, M-1)지점까지 도착(왼 위에서 오른 아래 == 왼 아래 오른 위) 2. 시작점에서는.. 2021. 9. 5.
[C++] 백준 10250번: ACM 호텔(ICPC 기출) https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제 분석 조건 1. 엘베는 가장 왼쪽에 존재 2. 인접한 방의 거리는 1 3. 한쪽면에만 방이 존재 (1,2,3 조건으로 일반 2차원 좌표계 사용가능) 4. 방번호의 표현 -> Y:층수, X:해당층 엘베부터 거리(항상 두자리 형태로 표현) -> YXX:Y가 앞에 써줌 예를 들어, W=12, H=6이면 방의 번호는 101~612까지 존재함((1,1)~(12,6)) 5. 엘베 이동은 이.. 2021. 9. 3.
728x90