알고리즘/BOJ 1235

백준 1431번 시리얼 번호

문제 링크입니다: https://www.acmicpc.net/problem/1431 algorithm 헤더의 sort() 메소드를 적절히 사용하면 쉽게 풀 수 있는 문제였습니다.간혹 invalid comparator 에러가 뜰 수 있는데 이유는 잘 모르겠습니다. #include #include #include #include using namespace std; int sum(string s) { int result = 0; for (int i = 0; i = 1 && (s[i] - '0') N; vector v(N); for (int i = 0; i > v[i]; sort(v.begin(), v.end(), c..

알고리즘/BOJ 2019.01.03

백준 11944번 NN

문제 링크입니다: https://www.acmicpc.net/problem/11944 string을 적절히 이용하면 쉽게 풀 수 있는 문제였습니다. #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); string N; int M; cin >> N >> M; int len = N.length(); int num = stoi(N); string result; if (len * num >= M) { int cnt = 0; while (1) { if (cnt + len > M) break; result += N; cnt += len; } for (int i = 0; i < M - cnt; ..

알고리즘/BOJ 2018.12.30

백준 16466번 콘서트

문제 링크입니다: https://www.acmicpc.net/problem/16466 우선순위 큐를 이용해서 간단히 풀 수 있는 문제라고 생각했지만 생각보다 함정이 많았던 문제였습니다. 알고리즘은 아래와 같습니다.1. 티켓팅 번호가 중복될 경우가 있으므로 map을 이용하여 중복해서 우선순위 큐에 넣어지지 않도록 합니다.2. 티켓 번호는 1부터 시작하므로 우선순위 큐의 root를 idx와 비교하고 idx와 root가 다를 경우 idx가 답이므로 출력하고 프로그램을 끝냅니다.3. 1~N까지 다 티켓팅이 완료되었을 경우 2번에서 값이 출력되지 않습니다. 따라서 2번에서 끝나지 않을 경우를 대비해 while문 밖에서 idx를 출력하는 문장을 추가해줍니다. #include #include #include #inc..

알고리즘/BOJ 2018.12.30

백준 1193번 분수찾기

문제 링크입니다: https://www.acmicpc.net/problem/1193 그림을 통해 간단히 설명하겠습니다.우선 찾을 순서는 위와 같이 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> 1/3 -> ... 순입니다. 오른쪽으로 갈수록 대각선의 길이가 1씩 증가하는 것을 확인할 수 있습니다.(1, 2, 3, 4, 5, ...)또한, 빨간색 대각선을 보면 대각선마다 (분모 + 분자)가 동일한 것을 확인할 수 있습니다.(2, 3, 4, 5, 6, ...) 따라서, X번째 분수가 어디 대각선에 속하는지 그리고 해당 대각선의 합이 몇인지를 알고 나면 쉽게 풀 수 있는 문제였습니다. #include using namespace std; int main(void){ ios_base::sync_..

알고리즘/BOJ 2018.12.30

백준 2636번 치즈

문제 링크입니다: https://www.acmicpc.net/problem/2636 BFS(Breadth First Search) 알고리즘을 두 번 적용해야하는 재미있는 문제였습니다. 알고리즘은 아래와 같습니다.1. 우선 사각형 모양의 판을 입력 받습니다.2. allClear() 함수를 통해 치즈가 모두 녹았는지 확인합니다. allClear() 함수가 참을 반환할 때까지 아래의 3 ~ 5번 과정은 반복됩니다.3. BFS1() 함수를 통해 공기가 존재하는 칸에 공기(AIR)라고 표시합니다.4. BFS2() 함수를 통해 치즈가 녹을 지점을 표시합니다. 이는 곧 공기가 되므로 PREAIR라고 표시합니다.5. 4번 과정이 끝나면 치즈가 녹아야하므로 PreairToAir() 함수를 통해 PREAIR라고 표시된 칸..

알고리즘/BOJ 2018.12.29