백준 문제풀이/실버4

백준 문제풀이/실버4

백준 2164번 - 카드2

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net queue를 활용하는 문제이다. 해당 문제 내용대로 1. 맨 앞에 것을 빼고 (pop) 2. 그 다음 맨 앞 것(queue.front)을 뒤로 밀어넣고(push) 3. 다시 맨 앞 것을 빼면 된다.(pop) 이 반복을 1개 남을때까지 반복하면 된다. #include #include using namespace std; int main() { std::cin.tie(NULL); std::ios::s..

백준 문제풀이/실버4

백준 1049번 - 기타줄

https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 사고과정) 우선 줄의 갯수, 즉 N이 6이하라면 케이스가 두 가지이다. 1. 그냥 6개짜리 세트 하나 구매 2. 한 개짜리 N개 만큼 구매 N이 6 초과라면 1. 6개짜리 세트로 떼우기 2. 한개짜리 N개 만큼 떼우기 3. 6개짜리로 살 수 있는 만큼 사고 한 개짜리 나머지 사기 아마 정답률이 낮은건 1. 무조건 같은 브랜드로 사야한다는 착각 2. 6개짜리 세트로만 충족할 수 있다는 걸 놓친 ..

백준 문제풀이/실버4

백준 1978번 - 소수 찾기

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 사고과정) 우선 소수라는 개념 자체가 '1과 자기 자신만으로 나뉘어지는 수' 라고 학교 다닐 때 배웠다. 그렇다면 그 이외의 숫자들로 나뉘어지면, 그건 소수가 아닐 것이다. 를 활용했다. 예외사항으로 1은 소수가 아니고. #include using namespace std; int main() { int N; cin >> N; int wrong = 0; for (int i = 0; i > num; if (num == 1..

백준 문제풀이/실버4

백준 1120번 - 문자열

https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 사고과정) 1. 배열의 갯수 차이만큼 A배열을 한칸씩 밀어가면서 비교한다. 2. 비교하는 과정 한 번 거칠 때마다 총 몇 개가 겹치지 않았는지 파악. 가장 최소 수 구하라는 건 결국엔 빈칸을 채워넣는 곳은 그냥 B배열과 같다라고 가정하고 하면 된다. 그림그려가면서했다.. #include #include using namespace std; int main()..

백준 문제풀이/실버4

백준 1065번 - 한수

https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 사고과정) 한자리랑 두자리 수는 생각해보니 다 한수이다. 그러면 결국은 세자리 수일 때인데, (100자리 - 10자리) == (10자리 - 1자리)를 확인해보면 된다. #include #include using namespace std; int main() { int N; cin >> N; int count = 0; for (int i = 1; i

백준 문제풀이/실버4

백준 1026번 - 보물

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 내 알고리즘의 핵심은 이렇다. 곱을 가장 작게 하려면 B 배열의 가장 큰 값은 A 배열의 가장 작은 값을 곱해줘야한다. B 배열의 수를 재배열해서는 안된다해서, B배열의 값을 똑같이 복사해서 만든 copy 배열을 만든 다음 A 배열은 오름차순, copy 배열은 내림차순으로 만들어준 다음 서로 곱하면서 더해줬다. #include #include using namespace std; bool ..

void_melody
'백준 문제풀이/실버4' 카테고리의 글 목록 (2 Page)