코테 11

백준 2903번 중앙 이동 알고리즘 (C++)

단계의 4번째 문제이다. https://www.acmicpc.net/problem/2903 이전 문제들은 여기서 볼 수 있다.2025.03.19 - [코테] - 백준 2745번 진법 변환 (C++)2025.03.20 - [코테] - 백준 11005번 진법 변환 2 (C++)2025.03.20 - [코테] - 백준 2720번 세탁소 사장 동혁 (C++) 이번 문제는 외계 지형을 만드는 알고리즘을 만드는 것 이라고 말하고규칙을 파악해서 식을 구하는 것이다. 규칙이 어렵지는 않아서 식을 금방 구할 수 있다. N 번 반복했을 때의 점의 개수는 한 줄의 점의 개수의 제곱이다. 그렇다면 한 줄의 점의 개수만 구하면 되겠다고 생각했다.  점이 늘어나는 규칙은 정사각형의 각 변의 중앙에 점을 추가하고, 정사각형의 중심..

코테 2025.03.22

백준 2720번 세탁소 사장 동혁 (C++)

https://www.acmicpc.net/problem/2720  단계의 3번째 문제이다.2025.03.19 - [코테] - 백준 2745번 진법 변환 (C++)2025.03.20 - [코테] - 백준 11005번 진법 변환 2 (C++)1번째와 2번째 문제는 여기서 볼 수 있다.  이번 문제는 거스름 돈의 동전 개수를 최소한으로 구하는 문제이다.  거스름돈 실수는 정말 하면 안된다. 아르바이트의 기본이다. 그런데 리암은 그렇지 않았다.사실 요즘 포스기는 워낙 기능이 많아서 이런거 이미 구현되어 있을 것이다. 내가 일하고 있는 매장도 손님이 지불한 금액(지폐 등)을 입력하면 거스름돈 얼마 주어야 하는지 나온다.(물론 오백원 동전 몇개, 백원 동전 몇개.. 이런식으로 나오진 않고 그냥 거스름돈의 총량만 ..

코테 2025.03.21

백준 11005번 진법 변환 2 (C++)

https://www.acmicpc.net/problem/11005  11005번 진법 변환 2 10진법 수를 B진법으로 바꿔서 출력하는 문제이다.  #include #include using namespace std;int main(){ int N, B; cin >> N >> B; vector v; int a = N % B; do { N /= B; char c; if (a > 9) { c = 'A' + (a - 10); } else { c = a + '0'; } v.push_back(c); a = N % B; } while (N >= B || a != 0); for (auto i = v.rbegin(); i != v.rend(); ++i) { cout 10진법으로 들어온 수를 B..

코테 2025.03.20

백준 2745번 진법 변환 (C++)

이전 포스팅들은 각 단계별로 묶어서 업로드 했는데, 각 문제들에서 시사할 바와 내가 고민한 바 등등 적고싶은게 많아졌다. 한 문제당 고봉밥(최대한;;)으로 업로드 하는 형식으로 변경하려고 한다.  이번 단계의 제목은 이다.개인적인 의견으로 수학적 사고력이 필요한 문제라고 생각한다.나는 문제들에서 주어진 것이 무엇인지, 내가 구해야 하는 것이 무엇인지를 생각하면서 풀었다. https://www.acmicpc.net/problem/2745 2745번 #include #include #include using namespace std;int main(){ string N; int B; cin >> N >> B; vector v; for (const char& elem : N) { char num = el..

코테 2025.03.19

백준 단계별로 풀어보기 (7)

이번 단계는 2차원 배열에 관한 문제들이 수록되어 있다. STL에서 제공하는 자료구조(사실 오직 vector)들을 사용하면서 간단하게 풀었다. https://www.acmicpc.net/problem/2738 2738번 행렬 덧셈 #include #include using namespace std;int main(){ int n, m; cin >> n >> m; vector> v(n, vector(m, 0)); // n*m 행렬 0으로 초기화 for (int i = 0; i > num; v[r][l] += num; } } } for (auto vec : v) { for (int n : vec) cout 입력으로 주어진 행렬의 크기에 맞게 2차원 배열을 vector로 생성한다. 차례대로 ..

코테 2025.03.18

백준 단계별로 풀어보기 (6)

https://www.acmicpc.net/problem/2508325083번 새싹 나의 풀이#include int main(){ std::cout 문자열 사이의 특수 문자들에 유의하여 문자열을 출력한다.https://www.acmicpc.net/problem/30033003번 킹, 퀸, 룩, 비숍, 나이트, 폰 나의 풀이#include #include using namespace std;int main(){ // 킹, 퀸, 룩, 비숍, 나이트, 폰 개수 // 1, 1, 2, 2, 2, 8 이 정상 vector v{ 1, 1, 2, 2, 2, 8 }; vector iv; int a; while (cin >> a) iv.push_back(a); for (int i = 0; i 원래 필요한 개수를 킹, 퀸..

코테 2024.09.25

백준 단계별로 풀어보기 (5) - 문자열

https://www.acmicpc.net/problem/2786627866번 문자와 문자열 나의 풀이#include #include using namespace std;int main(){ string str; cin >> str; int a; cin >> a; cout 단어와 정수가 주어졌을 때, 주어진 단어의 주어진 정수 번째 글자를 출력하는 프로그램이다.string 객체는 [] operator 를 지원하기 때문에 string에 단어를 입력하고, []를 통해서 원하는 글자에 접근했다.https://www.acmicpc.net/problem/27432743번 단어 길이 재기 나의 풀이#include #include int main(){ std::string str; std::cin >> str; st..

코테 2024.09.09

백준 단계별로 풀어보기 (4)

1차원 배열을 사용하는 문제이다. 대부분의 문제에서 std::vector를 사용해서 매우 편하게 풀 수 있었다. https://www.acmicpc.net/problem/1080710807번 개수 세기 나의 풀이#include #include #include using namespace std;int main(){ vector v; v.reserve(100); int n; cin >> n; for (int i = 0; i > a; v.push_back(a); } int key; cin >> key; auto a = v.begin(); int cnt{ 0 }; while (true) { a = find(a, v.end(), key); if (a == v.end()) break; ++cnt; ++a;..

코테 2024.09.06

백준 단계별로 풀어보기 (3)

이번 단계는 반복문이다. 반복을 알맞게 수행하면서도 읽기 쉬운 코드를 만드는 것이 관건이라고 생각한다. https://www.acmicpc.net/problem/27392739번 구구단 나의 풀이#include using namespace std;int main(){ int N; cin >> N; for (int i = 1; i https://www.acmicpc.net/problem/1095010950번 A+B - 3 나의 풀이#include using namespace std;int main(){ int N; cin >> N; for (int i = 0; i > A >> B; cout https://www.acmicpc.net/problem/83938393번 합 나의 풀이#include using ..

코테 2024.09.02

백준 단계별로 풀어보기 (2)

https://www.acmicpc.net/problem/13301330번 두 수 비교하기 나의 풀이 #include int main(){ int A, B; std::cin >> A >> B; if (A > B) std::cout "; else if (A https://www.acmicpc.net/problem/94989498번 시험 성적 나의 풀이#include using namespace std;int main(){ int score; cin >> score; if (score >= 90) { cout = 80) { cout = 70) { cout = 60){ cout https://www.acmicpc.net/problem/27532753번 윤년 나의 풀이#include using name..

코테 2024.08.31