분류 전체보기 73

[백준] 2869번: 달팽이는 올라가고 싶다 | C++ 풀이

# 문제 🐌 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. # 풀이 아주 귀여운 문제지만 시간 제한을 신경써야 하는 문제다. 정답 코드부터 한 번 확인해보자. #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 int a, b, v; int day = 1; cin >> a >> b >> v; day += (v-a) / (a-b); if((v-a)%(a-b)) cout

백준/C++ 2023.06.04

[백준] 1193번: 분수찾기 | C++ 풀이

# 문제 X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. # 풀이 이번에도 지난 번 두 문제와 같이 규칙찾기 문제다. 단계별 풀이에서 제공해주는 문제 순서에 맞춰 풀이하기를 권한다. 앞선 두 문제를 풀고 오신 분들이라면 규칙부터 한 번 찾아보자. 분수는 다음과 같은 순서로 넘버링이 되고 있다. 이때 우리는 대각선별로 숫자를 구분해볼 수 있는데 다음 그림을 확인해보자. 우선 분자, 분모의 합이 같은 대각선으로 그룹을 지어줄 수 있다. 분자와 분모 합이 2인 1/1은 1번 대각선 분자와 분모 합이 3인 2/1, 1/2는 2번 대각선 합이 4인 3/1, 2/2, 1/3은 3번 대각선과 같은 식이다. 여기서 다시 한 번 진행방향에 따라 대각선을 구분해주었다. 노란색으로 표시된 홀수 대각선은 진행..

백준/C++ 2023.06.03

[백준] 2292번: 벌집 | C++ 풀이

# 문제 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. # 풀이 지난 번 풀이한 중앙 이동 알고리즘 문제와 같이 규칙을 찾아내야 하는 문제다. 이번엔 규칙부터 확인! 벌집의 전개의 규칙을 찾을 땐 다음과 같이 그림을 바라보면 된다. 1 1개 1층(초기 층) 2-7 6개 2층 8-19 12개 3층 20-37 18개 4층 초기 층인 1층을 제외하고, 다음 층으로 이동할 때마다 6의 배수로 방이 늘어나고 있다. 그리고 몇 개의 방을 지나가는지 계산할 때, 시작과 끝을 포함하여 계산하므로 입력된 n이 속해있는 층을 출력해주면 그대로 정답이다. 그렇다면 바로 정답 소스코드를 확인해보자. #..

백준/C++ 2023.06.02

[백준] 2720번: 세탁소 사장 동혁 | C++ 풀이

# 문제 거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. # 풀이 참나 디아블로? 에펙하느라 코딩할 시간이 없는 거면 대신 해줄게 이자식아 어렵지 않은 문제다. 바로 정답 소스코드를 확인해보자. #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 cin.tie(NULL);// 입력과 출력 묶음을 풀기 int t, c; int coin[4] = {25, 10, 5, 1}; cin >> t; while(t--){..

백준/C++ 2023.05.31

[백준] 11005번: 진법 변환 2 | C++ 풀이

# 문제 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. # 풀이 바로 지난 글에서 풀이했던 진법 변환의 두 번째 문제다. 이번엔 반대로 10진법 수를 n진법으로 변환하는 문제인데, 앞선 문제를 풀이하지 않았다면 풀어보고 오는 것을 권한다. (2745번 풀이 글 링크) 2745번 문제를 풀었다면 이를 반대로 전개하면 되므로 쉽게 풀 수 있었을 거라 생각한다. 정답 소스코드를 보며 필요한 개념을 정리해보자. #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 int n, b; string res; cin >> n >> b; while(n > 0){ int..

백준/C++ 2023.05.30

[백준] 2745번: 진법 변환 | C++ 풀이

# 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. # 풀이 진법 변환은 알아두면 어디든 쓸모가 있는 것 같다. 우선 코드의 로직을 이해하기 위해 직접 진법 변환을 해보자. 5진법 수인 79152를 10진법으로 변환하는 과정은 다음과 같고, 3진법 수인 9735를 10진법으로 변환하는 과정은 다음과 같다. n진법의 경우에도 이와 동일하게 해결하면 된다는 걸 기억하고 코드로 넘어가면 충분히 해결할 수 있다. 이해했다면 바로 정답 소스코드 확인! #include using namespace std; int main() { ios_base::sync_with_stdio(false); // 두 표준 입출력 동기화 해제 int b; int res = 0; string n..

백준/C++ 2023.05.29

[백준] 2563번: 색종이 | C++ 풀이

# 문제 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. # 풀이 풀이를 떠올릴 때 지금 우리가 어느 단계에 위치해있는지를 떠올리는 게 굉장한 도움이 된다. 아직 단계별 풀이를 벗어나지 못한 우리에게 도움이 되는(?) 아주 약간의 힌트! 정답 소스코드를 보며 답을 확인해보자. #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 bool paper[100][100] = {0}; int sum = 0; int n; cin >> n; while(n--){ int x, y; cin >> x >> y; for(int i=y; i..

백준/C++ 2023.05.28

[백준] 10798번: 세로 읽기 | C++ 풀이

# 문제 칠판에 붙여진 단어들이 주어질 때, 영석이가 세로로 읽은 순서대로 글자들을 출력하는 프로그램을 작성하시오. # 풀이 풀이 단계에 명시된 대로 2차원 배열을 사용해 풀면 어렵지 않은 문제다. 해당 글에서는 2차원 배열을 사용한 풀이와 1차원 배열을 사용한 풀이 두 가지를 적어두었다. 문제에서 제시한 대로도 풀어보고 생각나는 대로도 풀어보며 다양한 풀이를 익혀보자. 🖱️ 풀이1 | 2차원 배열 사용 #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 string matrix[5][15]; for(int i=0; i> s; for(int j=0; j

백준/C++ 2023.05.27

[백준] 25206번: 너의 평점은 | C++ 풀이

# 문제 치훈이의 전공평점을 계산해주는 프로그램을 작성해보자. # 풀이 예제 입력이 어마무시해보이지만 쉬운 문제! 정답 소스코드를 보고 함께 풀어보자. 근데 치훈아 어떻게 졸업고사를 깜빡할 수가... #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 map gradeTable; gradeTable["A+"] = 4.5; gradeTable["A0"] = 4.0; gradeTable["B+"] = 3.5; gradeTable["B0"] = 3.0; gradeTable["C+"] = 2.5; gradeTable["C0"] = 2.0; gradeTable["D+"] = 1.5;..

백준/C++ 2023.05.26
728x90