백준 문제풀이

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

백준 문제풀이/브론즈2

백준 1173 - 운동

https://www.acmicpc.net/problem/1173 1173번: 운동 첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다. www.acmicpc.net 사고과정) 결국 고려해야할 지점은 두 가지다 1) 운동을 할 시, 최대값(경계값)을 초과할 수 없다. 초과하면 무조건 휴식을 해서 감소시켜야한다. 2) 휴식을 통한 감소값이 너무 크면, 최소값(경계값) 아래로 내려갈 수 없게 설정해줘야한다. 즉, 심박수는 최소값 아래로 내려갈 수 없게 설정해줘야한다. #include using namespace std; int main() { int N, m, M, T, R; cin >> N >> m >> M >> T >> R; int exercise = 0; int rest = 0; int sum =..

백준 문제풀이/브론즈3

백준 2506번 - 점수계산

https://www.acmicpc.net/problem/2506 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net #include using namespace std; int main() { int N; cin >> N; int* arr = new int[N]; for (int i = 0; i > arr[i]; int count = 0; int sum = 0; for (int i = 0; i < N; i++) { if (arr[i] == 1) { sum = sum + (count + 1)..

백준 문제풀이/실버5

백준 1246번 - 온라인 판매

https://www.acmicpc.net/problem/1246 1246번: 온라인 판매 첫째 줄에 정수 N(1 ≤ N ≤ 1,000)과 M(1 ≤ M ≤ 1,000)이 입력된다. 둘째 줄부터 M+1번째 줄까지 i+1번째 줄에는 Pi(1 ≤ Pi ≤ 1,000,000)가 입력된다. www.acmicpc.net 사고과정) (가격금액 * 구매 가능한 사람수 )가 가장 큰 값을 찾으면 된다. 입력받은 가격들 중 가장 큰 값을 max_element로 찾고, i = 1 ~ max_element까지 반복하면서 구매가능한 사람수를 조건문으로 걸고 곱한 합을 비교하면 된다. 예외사항으로, 사람수가 계란수보다 많으면, 예를 들어 가능한 사람수는 5명이라 count가 5는 되지만, 계란 수는 4라 오류가 난다. 그렇기 ..

백준 문제풀이/실버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

백준 문제풀이/실버5

백준 1439번 - 뒤집기

https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 처음에 무슨 소리인가 싶어서 5분간 예제 보면서 고민하다가 내린 결론은 간단했다. 같은 문자가 쭉 가다가 한번 다른 문자가 나오면 그 횟수를 카운트해서, 가장 적은 횟수를 출력해주면 되는 거였음. #include #include using namespace std; int main() { string input; cin >> input; int zero = 0, one = 0; for (int i..

백준 문제풀이/실버5

백준 1427번 - 소트인사이드

https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 사고과정 1.) 1. 해당 입력을 int형으로 받을 것인지, string으로 받을 것인지 고민. 2. 첫번 째 풀이는 int형으로 해봄. 3. 우선 해당 정수의 자릿수가 필요하고, 4. 배열에 수들을 하나씩 넣어주고 5. 내림차순 sort 함수 사용. 2-1). 두 번째 string형으로 해봄. 2-2). 마찬가지로 바로 sort함수 사용하면됨. 메모리 크기는 비슷하다. #include #include using namespace std; bool Decend(int x, int y..

void_melody
'백준 문제풀이' 카테고리의 글 목록 (8 Page)