백준 문제풀이

백준 문제풀이/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문을 사용하여 구할수도 있고, 재귀를 이용해서도 구할 수..

백준 문제풀이/GOLD

[백준 / BOJ / GOLD 5] 14500 번 : 테트로미노

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net 문제 접근 방법 겹쳐지는 도형의 범위 만큼 해당 수를 더하면 되는 문제. 모든 도형의 회전이나 반전을 했을 경우 종류를 생각 -> ..

백준 문제풀이/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값으로 초기화 시키..

백준 문제풀이/BRONZE

[백준 / BOJ / BRONZE 2] 2309 번 : 일곱 난쟁이

https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 접근 방법 일곱 난쟁이의 키의 합이 100이 되어야 한다. 전체 난쟁이의 키의 합을 구한뒤, 2명의 키를 빼서 100이 되는 경우를 구하면 된다. 아래는 코드입니다. 일반 배열과 vector를 사용하여 푼 방법 2가지가 있습니다. 문제의 푸는 방식은 거의 동일합니다. 일반 배열을 사용한 첫 번째 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2..

백준 문제풀이/GOLD

[백준 / BOJ / GOLD 5] 13023 번 : ABCDE

https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 문제 접근 방법 친구 관계가 성립하는 5명이 존재하는지를 체크하는 문제 DFS를 사용하여 구하기로 함 친구관계를 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 ..

백준 문제풀이/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 =..

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