[C++] 백준 8958 OX퀴즈
·
Algorithm/Solution
8958번: OX퀴즈 (acmicpc.net) 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 난이도 : 브론즈2 과정 : 연속된 O의 개수들을 더하는 문제였습니다. 연속된 O의 개수를 담는 변수 CNT와, CNT를 더하는 ANS 변수를 선언하여 반복문을 이용해 답을 구하였습니다. #include #include using namespace std; int n; int main() { cin >> n; string arr; for (int i = 0; i > ..
[C++] 1260 DFS와 BFS
·
Algorithm/Solution
1260번: DFS와 BFS (acmicpc.net) 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 난이도 : 실버2 풀이과정 : DFS는 재귀함수를 이용해서 풀었습니다 [Algorithm] DFS 정리 (tistory.com)
[C++] 2309 일곱 난쟁이
·
Algorithm/Solution
2309번: 일곱 난쟁이 (acmicpc.net) 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 난이도 : 브론즈2 풀이 과정 : 전형적인 완전 탐색 문제입니다. 저는 9명의 난쟁이의 키를 배열로 입력받아서 모두 더한다음 2명을 빼서 키의 합이 100이되는 경우의 수를 다 탐색해보는 방법으로 풀었습니다. 2명을 빼는 방법은 이중반복문을 이용해서 모든 경우의 수를 다 탐색할 수있게 합니다. 그리고 오름차순으로 출력해야 하기 때문에 입력받은다음 바로 정렬해줬습니다. 코드 : #include #include using n..
[C++] 17478번 재귀함수가 뭔가요?
·
Algorithm/Solution
17478번: 재귀함수가 뭔가요? (acmicpc.net) 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 난이도 : 실버 5 오타확인 필수! 풀이과정 : 문제그대로 재귀함수를 이용해서 풉니다 1. n의 값이 함수에 들어오면 0이 될때까지 question~answer03까지 출력후 n--해주고 재귀함수로 다시들어갑니다. (그 후에꺼(end1)는 n의 값대로 출력되겠죠?) 2. n이 0이되면 진짜 답을 출력해줍니다. (question,answer2,end1) 간단해보여도 미리 어떻게 풀건지 메모장에 정리하기 ㅠ..
[C++] 2960번 에라토스테네스의 체
·
Algorithm/Solution
2960번: 에라토스테네스의 체 (acmicpc.net) 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 난이도 : 실버 4 생각보다 오래 걸렸던 문제였어요 ㅠ 에라토스테네스의 체를 공부하고 관련된 코드를 보면서 짜다가 보통의 에라토스테네스 알고리즘 코드랑 이 문제가 약간 다르잖아요? P를 포함해가지고 제거되는 거라.. 하튼간 쉽지 않았던 문제!! 였습니다. 저한테는... 풀이과정 : 1. visited배열에 2부터 N까지 집어넣는다! (v(2) =2, v(3)=3 ... 이런식으로) 2. i가 2일때는 2, 4, 6, 8.... 3일때는 3,6,9,... 이런식으로 지워져야 하기때문에 이중 fo..
[C++] 2167번 2차원 배열의 합
·
Algorithm/Solution
2167번: 2차원 배열의 합 (acmicpc.net) 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 난이도 : 브론즈1 비교적 쉬운 문제였습니다. 문제 이해만 잘 한다면? 문제 이해가 안가시는 분들을 위해 설명을 해드리자면 2, 3 = 행이 2이고, 열이 3인 배열OR벡터를 생성 밑에 두줄은 배열에 들어가는 수를 뜻하구요 (0,0)=1, (0,1) =2 ... (편의를 위해 배열의 시작을 0,0으로 가정) 3 밑에 세줄이 이해 안가실 거같은데 위와같은 방식으로 더해가는 거랍니다..
[C++] 11944번 NN
·
Algorithm/Solution
11944번: NN (acmicpc.net) 11944번: NN 첫 번째 줄에는 N, M이 주어진다. (1 ≤ N, M ≤ 2016) www.acmicpc.net 난이도 : 브론즈2 백준 답 낼때 오타 있는지 제발 검수하고 내야겠다는 다짐이 든 문제였습니다.. 비교적 쉬운 난이도의 문제라 빨리 풀었는데 출력초과! 가 떠서... 왜지?? 하다가 처음부터 새로 다시짠... 근데 새롭게 도저히 못짜겠어서 친구한테 물어볼려고 처음코드 다시 봤는데... 오타 하나가.... 치명적이게.. 억울하다 억울해 내시간 거의 1시간 반을 투자했다구 ㅠ 답 : #include #include using namespace std; int main() { int n, m; scanf("%d %d", &n, &m); string ..
[C++] 2609번 최대공약수와 최소공배수
·
Algorithm/Solution
2609번: 최대공약수와 최소공배수 (acmicpc.net) 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 난이도 : 실버 5 풀기 전 알아야 할 개념 : 최대공약수와 최소공배수의 개념을 알고 그냥 풀 수도 있기는 한데요, 최대공약수는 두 수를 1부터 N까지 계속 나누면서 공통적으로 나머지가 0이 나오는 값중에 가장 큰 값이고, 최소공배수는 두 수를 최대 공약수로 나눠서 둘이 곱해준 값입니다.(왜냐면 두 수의 최대공약수로 나누면 그 수가 서로소가 가 되기 때문에, 서로소를 곱한 값이 최소 공배수가 되기 때문) 근데 이렇게 하면 시간복잡도가 유클리드호제법을 이용한 것보다 크다..
[C++] 1100번 하얀 칸
·
Algorithm/Solution
1100번: 하얀 칸 (acmicpc.net) 1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 난이도 : 브론즈 2 원리 : char로 문자열을 받아서 이중 반복문을 이용해 f를 센다. 홀수줄은 num이 0, 짝수줄은 num이 1 이되어 줄별로 F가 세지는 게 다르게 된다.(홀수줄은 인덱스 0부터 시작, 짝수줄은 인덱스 1부터 시작하여 2씩더해지며 값이 비교됨) 답 : #include int main() { char std[9]; int chk = 0, num = 0; for (int i = 0; i < 8..