[BOJ/백준/C++] 11866번 요세푸스 문제 0
·
Coding Test/Baekjoon
11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 📌 접근 방법 큐가 비워질 때까지 반복 카운팅(cnt)하여 cnt가 K로 나누어 떨어질 때 해당 수 출력할 것임. 해당 순서에 오지 않았을 경우 맨 앞의 수를 맨 뒤로 차례차례 보냄 cnt가 K로 나누어 떨어질 때 맨 앞에 있는 수를 출력(그동안 그 전의 숫자들은 맨 뒤로 옮겨짐) 큐가 빌 때까지 반복!! ✅ Pass Code #include #include #include #include #include #include #include #include #include #include #include using namespace std; int m..
[BOJ/백준/C++] 1874번
·
Coding Test/Baekjoon
1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 📌 접근 방법 벡터에 스택 원리로 숫자를 쌓는다 현재 target으로 하는 숫자가 1에서 1씩 키워가면서 target이 벡터에 있는 숫자가 될 때까지 push를 해준다 임시 벡터에 push해줌 (string 변수에 + 저장) 벡터에 있는 숫자를 빼야하기 때문에 pop 해줌(string 변수에 - 저장) 다음 벡터에 있는 숫자가 임시 벡터의 top에 있을 경우 pop해주고 임시벡터에..
[BOJ/백준/C++] 20920번 영단어 암기는 괴로워
·
Coding Test/Baekjoon
20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 📌 접근 방법 N : 입력받을 단어의 개수 M : 길이가 M 이상인 단어만 단어장에 적는다 map 을 이용해 key에 단어, value에 ++1을 해준다. 중복입력되면 value의 값이 증가! 벡터로 단어장을 만들어준 후 map에 있는 단어와 단어가 나온 횟수를 넣어준다. sort 함수를 이용해 조건에 맞게 정렬해줌! ✅ Pass Code #include #include #include #incl..
[BOJ/백준/C++] 2108번 통계학
·
Coding Test/Baekjoon
2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 📌 접근 방법 산술평균의 반올림은 round 함수를 사용 최빈값 ( -4000 ~ 4000의 숫자들 중 가장 많이 등장한 숫자 출력, 여러 개일 경우 두 번째로 작은 값 출력) - 4000~4000범위의 숫자를 +4000하여 ➡ 0~8000 범위로 바꿈 배열의 크기가 8001인 배열을 만들어 숫자가 나온 만큼 해당 인덱스의 값을 1 증가시켜줌, 벡터에도 입력값 저장해준다. 배열에서 가장 값이 큰 값이 많이 나온 수이기 때문에 해당 인덱스를 max에 넣어줌 위에서 구한 max와..