문제 풀이
-
[백준] 2745번 진법 변환, 11005번 진법 변환 2문제 풀이 2020. 7. 20. 19:17
2745 진법 변환 문제B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 입력첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. 출력첫째 줄에 B진법 수 N을 10진법으로 출력한다. 풀이)string과 math 헤더를 사용하면 쉽게 풀 수 있는 문제였다. 과정1. string을 이용해서 N을 입력받는다.2. N의 맨 오른쪽부터 10진수로 변환해준 값을 구한다. ( 만약, A~Z 의 알파벳이라면 A = 10, B..
-
[백준] 2344번 거울문제 풀이 2020. 7. 18. 22:07
2344번 거울 문제세로 N, 가로 M 크기의 상자가 있다. 이 상자 안에는 몇 개의 거울이 들어 있다. 상자를 위에서 봤을 때, 거울은 한 칸 안에 대각선 모양으로 들어있다고 한다. 또, 상자의 테두리를 따라서 칸마다 구멍이 뚫려 있다. 편의상 구멍은 왼쪽 위에 뚫려있는 것부터 시계 반대 방향으로 1, 2, …, 2N+2M 의 번호가 붙어 있다. 예를 들어 다음과 같은 경우를 보자.이제 이 상자에 뚫려있는 구멍으로 빛을 쏜다고 생각해보자. 1번 구멍으로 쏠 경우에는 (1, 2)의 위치에 있는 거울에 반사되어 9번 구멍으로 빛이 가게 된다. 또, 2번 구멍으로 빛을 쏠 경우에는 (2, 2)의 위치에 있는 거울과 (1, 2)에 있는 거울에 차례로 반사되어 7번 구멍으로 빛이 나가게 된다.이와 같이 상자의 ..
-
[백준] 2151번 거울설치문제 풀이 2020. 7. 17. 20:45
2151 거울 설치 문제채영이는 거울을 들여다보는 것을 참 좋아한다. 그래서 집 곳곳에 거울을 설치해두고 집 안을 돌아다닐 때마다 거울을 보곤 한다.채영이는 새 해를 맞이하여 이사를 하게 되었는데, 거울을 좋아하는 그녀의 성격 때문에 새 집에도 거울을 매달만한 위치가 여러 곳 있다. 또한 채영이네 새 집에는 문이 두 개 있는데, 채영이는 거울을 잘 설치하여 장난을 치고 싶어졌다. 즉, 한 쪽 문에서 다른 쪽 문을 볼 수 있도록 거울을 설치하고 싶어졌다.채영이네 집에 대한 정보가 주어졌을 때, 한 쪽 문에서 다른 쪽 문을 볼 수 있도록 하기 위해 설치해야 하는 거울의 최소 개수를 구하는 프로그램을 작성하시오.거울을 설치할 때에는 45도 기울어진 대각선 방향으로 설치해야 한다. 또한 모든 거울은 양면 거울이..
-
[백준] 1016번 제곱 ㄴㄴ수문제 풀이 2020. 7. 16. 19:24
1016 제곱 ㄴㄴ 수 문제어떤 수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min과 max를 포함한 사이에 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 입력첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. 출력첫째 줄에 [min,max]구간에 제곱ㄴㄴ수가 몇 개인지 출력한다. 풀이)에라토스테네스의 체 방법을 사용하였고제곱수가 아닌 수를 찾는 것이 아닌, 1보다 큰 제곱수로 나누어 떨어지지 않는 수를 찾으면 되는 문제이다. 핵심은min과 max의 범위가 크므로..
-
[백준] 13901번 로봇문제 풀이 2020. 7. 15. 21:10
13901번 로봇 문제해빈이는 로봇을 좋아한다. 로봇을 가지고 놀던 해빈이는 로봇에게 계속해서 명령을 내려 움직이는 대신 이동할 방향을 미리 지정하여 로봇이 알아서 움직이도록 하였다. 이 로봇은 다음과 같은 규칙을 가지고 움직인다.- 로봇은 사용자가 지정한 방향을 일직선으로 움직인다.- 이동 중 벽이나 방문한 지역, 장애물을 만날 경우 로봇은 사용자가 지정한 다음 방향으로 움직인다.- 사용자가 지정한 다음 방향이 없다면 맨 처음 방향으로 돌아가서 위의 과정을 반복한다.- 로봇이 움직일 수 없을 경우 동작을 멈춘다. 입력으로 방의 크기와 장애물의 개수, 각 장애물들의 위치, 로봇의 시작 위치, 이동 방향의 순서가 주어졌을 때 로봇이 멈추는 위치를 출력하시오. 위치 (0, 0)은 왼쪽 위를 가리키며 방의 크..
-
[백준] 14620번 꽃길문제 풀이 2020. 7. 14. 19:40
14620번 꽃길 문제2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므로 진아는 다음해 식목일 부터 꽃길을 걸을 수 있다.하지만 진아에게는 꽃의 씨앗이 세개밖에 없었으므로 세 개의 꽃이 하나도 죽지 않고 1년후에 꽃잎이 만개하길 원한다.꽃밭은 N*N의 격자 모양이고 진아는 씨앗을 (1,1)~(N,N)의 지점 중 한곳에 심을 수 있다. 꽃의 씨앗은 그림 (a)처럼 심어지며 1년 후 꽃이 피면 그림 (b)모양이 된다.꽃을 심을 때는 주의할 점이있다. 어떤 씨앗이 꽃이 핀 뒤 다른 꽃잎(혹은 꽃술)과 닿게 될 경우 두 꽃 모두 죽어버린다. 또 화단 밖으로 꽃잎이 ..
-
[백준] 14923번 미로 탈출문제 풀이 2020. 7. 14. 18:34
14923 미로탈출 풀이)bfs를 이용해서 푼 문제이다.예전에 풀었던 벽 부수기 문제(2206번)랑 같은 방법으로 풀면 된다. 지팡이를 사용하지 않았던 경로와 지팡이를 사용한 경로가 중간에 같은 위치에서 만났을 때를 잘 처리해주면 된다.둘 중 하나가 방문 체크를 하면 나머지 하나의 경로는 더이상 탐색을 하지 못하기 때문이다. => 방문 체크 배열을 3중 배열로 두고 처리한다.bool visited[1001][1001][2];// visited[y][x][0] : 아직 지팡이를 사용하지 않고 (ny,nx)에 방문// visited[y][x][1] : 이미 지팡이를 사용하고 (ny,nx)에 방문 주의점우리가 보통 문제 풀 때 행을 y 열을 x로 입력 받았는데, 여기서 입력으로 주어지는 변수들을 보면행을 Hx..
-
[백준] 13537번 수열과 쿼리1문제 풀이 2020. 7. 13. 18:39
13537 수열과 쿼리1 문제길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오i j k: Ai, Ai+1, ..., Aj로 이루어진 부분 수열 중에서 k보다 큰 원소의 개수를 출력한다. 입력첫째 줄에 수열의 크기 N (1 ≤ N ≤ 100,000)이 주어진다.둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109)셋째 줄에는 쿼리의 개수 M (1 ≤ M ≤ 100,000)이 주어진다.넷째 줄부터 M개의 줄에는 쿼리 i, j, k가 한 줄에 하나씩 주어진다. (1 ≤ i ≤ j ≤ N, 1 ≤ k ≤ 109) 출력각각의 쿼리마다 정답을 한 줄에 하나씩 출력한다. 풀이)수열의 길이도 10만까지 되며, 쿼리의 수도 10만까지 주..