-
[이취코] ch04. 구현 유형 문제 풀이Major/Algorithms 2022. 3. 15. 17:11
#1 시각
[문제]
- 가능한 모든 시각의 경우를 하나씩 모두 세서 풀 수 있는 문제
- 완전 탐색 (Brute Forcing) 문제 유형 -> 가능한 경우의 수를 모두 검사해보는 탐색 방법
[코드] cpp
#include <iostream> using namespace std; int h, cnt; // 특정한 시각 안에 '3'이 포함되어 있는지의 여부 bool check(int h, int m, int s) { if (h % 10 == 3 || m / 10 == 3 || m % 10 == 3 || s / 10 == 3 || s % 10 == 3) return true; return false; } int main(void) { // H를 입력받기 cin >> h; for (int i = 0; i <= h; i++) { //시(h) for (int j = 0; j < 60; j++) { //분(m) for (int k = 0; k < 60; k++) { //초(s) // 매 시각 안에 '3'이 포함되어 있다면 카운트 증가 if (check(i, j, k)) cnt++; } } } cout << cnt << '\n'; return 0; }
- for문으로 시/분/초를 반복하면서 3이 포함될때마다 cnt++ 카운트 증가
#2 왕실의 나이트
[문제]
[코드] cpp
#include <iostream> using namespace std; string inputData; int dx[] = { -2,-1,1,2,2,1,-1,-2 }; int dy[] = { -1,-2,-2,-1,1,2,2,1 }; int main(void) { //현재 나이트의 위치 입력받기 cin >> inputData; int row = inputData[1] - '0'; // 아스키코드를 빼줌으로써 문자를 숫자로 전환 int column = inputData[0] - 'a' + 1; //8가지 방향에 대해 각 위치로 이동이 가능한지 확인 int result = 0; for (int i = 0; i < 8; i++) { //이동하고자 하는 위치로 이동 int nextRow = row + dx[i]; int nextCol = column + dy[i]; //이동가능하다면 카운트 증가 if (nextRow >= 1 && nextRow <= 8 && nextCol >= 1 && nextCol <= 8) result+=1; } cout << result << '\n'; return 0; }
#3 문자열 재정렬
[문제]
[코드] cpp
#include <iostream> #include <algorithm> #include <vector> using namespace std; string inputData; vector<char> result; int value = 0; int main(void) { cin >> inputData; //입력된 문자열을 하나씩 확인 for (int i = 0; i < inputData.size(); i++) { //알파벳인 경우 리스트에 삽입 if (isalpha(inputData[i])) { result.push_back(inputData[i]); } //숫자는 따로 더하기 else value += inputData[i] - '0'; //아스키코드를 빼면서 문자를 숫자로 전환 } //알파벳을 오름차순으로 정렬 sort(result.begin(), result.end()); //알파벳을 차례대로 출력 for (int i = 0; i < result.size(); i++) { cout << result[i]; } //숫자가 존재하는 경우 가장뒤에 출력 if (value != 0) cout << value; cout << '\n'; }
- 리스트에 저장된 알파벳을 정렬해 출력 & 합계 출력
**
수와 숫자의 차이점?
- 수: 100,1000,1000 등 크기, 숫자를 말함
- 숫자: 0~9 까지 한자릿수의 수를 말함
**
정렬함수 sort()를 사용하기 위해서는 <algorithm> 헤더파일 필요
<vector> 컨테이너를 사용하기 위해서는 <vector> 헤더파일 필요
'Major > Algorithms' 카테고리의 다른 글
[이취코] ch06-1. 선택정렬 (Selection Sort) (0) 2022.03.30 [이취코] ch05. 탐색 알고리즘 DFS/BFS (0) 2022.03.28 [이취코] ch05. 자료구조 기초 (스택/큐/재귀함수) (0) 2022.03.22 [이취코] 04. 구현 유형 개요 (0) 2022.03.15 [이취코] 그리디 알고리즘 (0) 2022.03.08