백준 문제풀이/SILVER

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 2] 10819 번 : 차이를 최대로

https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 문제 접근 방법 배열의 정수들을 가지고 최댓값을 구해야 한다. 최대 8개까지의 숫자가 들어올 수 있기 때문에 모든 경우의 수를 구해도 메모리와 시간제한이 충분하다. vector A의 for문을 이용해 A[i] - A[i +1]의 절대값을 더한 값을 변수에 저장하고 끝까지 진행 시 next_permutation을 사용하여 다음 경우의 수에서 이를 반복한다 변수들을 비교하여 가장 큰 값을 출력한다 아래는 코드입니다..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 3] 10974 번 : 모든 순열

https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 접근 방법 최초에 1부터 입력 받은 값까지의 범위 값을 vector에 집어넣습니다. vector에 들어온 값들을 순서대로 출력해 줍니다. next_permutation을 이용하여 vector에 저장값을 다음 순열로 바꾸어 출력합니다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include #include #in..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 3] 10973 번 : 이전 순열

https://www.acmicpc.net/problem/10973 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 문제 접근 방법 입력 받은 순열의 이전 순열을 구하는 문제이다. prev_permutation을 알고있다면 쉽게 풀 수 있는 문제이다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include #include #include using namespace std; int main() { ios_base..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 3] 10972 번 : 다음 순열

https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 문제 접근 방법 주어진 순열의 다음 순열을 구하는 문제이다. 우선 vector에 주어진 값들을 저장한다. next_permutation이라는 함수를 사용하면 다음 순열을 구할수 있다. 이를 이용하여 다음 순열을 구하여 출력한다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include #include #..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 3] 9095 번 : 1, 2, 3 더하기

https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net 문제 접근 방법 여러가지 방식으로 풀 수 있는 문제입니다. n중 for문을 사용하여 구할수도 있고, 재귀를 이용해서도 구할 수..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 5] 1476 번 : 날짜 계산

https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1 www.acmicpc.net 문제 접근 방법 단순한 브루트 포스 문제입니다. E, S, M을 증가시키면서 해당 범위에 도달하면 그 다음 차례에 1값으로 초기화 시키..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 3] 1748 번 : 수 이어쓰기 1

https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1≤N≤100,000,000)이 주어진다. www.acmicpc.net 문제 접근 방법 새로운 수의 자릿수 = 1부터 N까지의 전체 자릿수를 더한것과 같다. 1부터 N까지 1의자리 갯수 + 10의자리 갯수 + 100의 자리 갯수 + ... + 10의 n승 자리 갯수들을 더한다. 아래는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int N, ans = 0 ,count =..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 1] 11048 번 : 이동하기

https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 현재 (1, 1)에 있고, (N, M)으로 이동하려고 한다. 준규가 (r, c)에 있으면, (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있고, 각 방을 방문할 때마다 방에 놓여져있는 사탕을 모두 가져갈 수 있다. 또, 미로 밖으 www.acmicpc.net 문제 접근 방법 원점으로부터 이동 할 수 있는 위치를 파악한다(우측, 우측 대각선 아래, 아래) 3가지 방향이다. 이동되는 점의 기준..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 1] 6064 번 : 카잉 달력

https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 문제 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 www.acmicpc.net 문제 접근 방식 x나 y를 1씩 증가시키는 방식으로 진행 시 시간초과를 초래할 수 있다. x를 고정 시키고 출력 해를 M만큼 증가시키는 방식으로 해를 구한..

백준 문제풀이/SILVER

[백준 / BOJ / SILVER 2] 1890 번 : 점프

https://www.acmicpc.net/problem/1890 1890번: 점프 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 www.acmicpc.net 문제 접근 방식 최초 지점으로 부터 오른쪽 혹은 아래로 이동을 할 수 있다. 도착 지점의 입장에서 생각해보면 왼쪽에서 도착 지점으로 오거나 위..

지나가던 개발자
'백준 문제풀이/SILVER' 카테고리의 글 목록 (2 Page)