smooth waters run deep

C++ 20

2178_미로 탐색 (JAVA) (C++)

2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net [C++] #include #include using namespace std; int row, col; int map[101][101]; bool visited[101][101]; int ans = 0; struct XY{ int x; int y; }; int dx[] = {-1,1,0,0}; int dy[] = {0,0,-1,1}; void bfs(int a, int b){ queue q; q.push({a,b}); visited[a][b] = true; while(!q.empty()){ ..

1d-1c/BOJ 2020.09.10

1316_그룹 단어 체커 (C++)

1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net #include using namespace std; int check(string word) { int alpha[26] = { 0, }; int j = 0; while (j != word.length()) { if (j == 0) { //첫 번째 문자: 방문체크, j++ alpha[(int)word[j] - 97] = 1; j++; } else { if (word[j] == word[j - 1]) j++; //이전 문자와 같다..

1d-1c/BOJ 2020.08.28

2941_크로아티아 알파벳 (C++)

2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net #include #include #include using namespace std; int main() { string str; cin >> str; deque str_c; for (int i = 0; i < str.length(); i++) { str_c.push_back(str[i]); } int ans = 0; while (!str_c.empty()) { char cur = str_c.front(); char next..

1d-1c/BOJ 2020.08.26

2908_상수 (C++)

2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net #include #include //max using namespace std; int change(int num) { int x, y, z; x = num / 100; y = num % 100 / 10; z = num % 10; return (z * 100 + y * 10 + x); } int main() { int A, B; cin >> A >> B; A = change(A); B = change(B); cout

1d-1c/BOJ 2020.08.26

1157_단어 공부 (C++)

1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net #include #include #include //max using namespace std; int main() { int alpha[26] = { 0, }; string word; cin >> word; for (int i = 0; i = 'A' && cur 소문자로 cur += 32; } alpha[(int)cur - 97]++; } int max_alpha = 0; //제일 많이 사용된 ..

1d-1c/BOJ 2020.08.25

10809_알파벳 찾기 (C++)

10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net #include #include using namespace std; int main() { int alpha[26] = { 0, }; int visited[26] = { 0, }; string S; cin >> S; for (int i = 0; i < S.length(); i++) { char cur = S.at(i); //S의 i번째 알파벳 int cur_int = (int)cur - 97; //알파벳a == 숫자0 으로 계산 if (!visite..

1d-1c/BOJ 2020.08.25

4673_셀프 넘버 (C++)

4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net #include using namespace std; int visited[10001] = { 0, }; //방문 확인 void dfs(int num) { int temp = num; while (num) { int n = num % 10; temp += n; num /= 10; } if (temp

1d-1c/BOJ 2020.08.24

8958_OX퀴즈 (C++)

8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net #include #include using namespace std; int main() { int n; cin >> n; vector v; string str; for (int i = 0; i > str; v.push_back(str); } for (int i = 0; i < n; i++) { int cnt = 0, ans = 0; for (int j = 0; j < v[i].size(); j++) { if (..

1d-1c/BOJ 2020.08.17

[백준] 1051_숫자정사각형 (Silver3) (C++)

어떻게 하면 더 똑똑하게 풀 수 있을까 고민했는데 bruce force 방법 뿐이었다. 문제 해결에 필요한 부분은 진작에 완성했는데 계속 '틀렸습니다!'가 떠서.. '맞았습니다!'까지 한참 걸렸다. 이유는 입력받는 데에 문제가 있다는 걸 캐치하지 못했기 때문!! "C++에서 제공하는 정수형으로는 길이 50의 정수를 입력받을 수 없습니다. 일단 문자열로 입력받은 후에 직접 원하는 타입으로 가공해야 합니다." 라는 게시판 속 해결사 댓글을 보고 드디어 '맞았습니다' (코드 속 12-17 부분) 문제에서 일부러 50까지 입력을 받으려고 했나하는 생각이 들었다. 나한테는 무시무시한 함정이었다.. ** 잊지말자 !! 문자열 -> 숫자 문자 - '0' 숫자 -> 문자열 숫자 + '0' **코드짜면서 생각했던 부분 ..

1d-1c/BOJ 2020.04.26