본문 바로가기

분류 전체보기

(308)
[백준/C++] 1244번: 스위치 켜고 끄기 문제https://www.acmicpc.net/problem/1244문제 요약1부터 연속적으로 번호가 붙어 있는 스위치들이 있다. '1'은 스위치가 켜져 있음을, '0'은 꺼져 있음을 나타낸다. 학생 몇 명을 뽑아 자연수를 하나씩 나누어 준다. 학생들은 자신의 성별과 받은 수에 따라 스위치들을 조작한다. 남학생은 스위치 번호가 자기가 받은 수의 배수이면, 해당 스위치 상태를 바꾼다. 여학생은 자기가 받은 수와 같은 번호의 스위치를 중심으로 좌우가 대칭이면서,가장 많은 스위치를 포함하는 구간을 찾아 그 구간에 속한 스위치 상태를 모두 바꾼다.코드#include #include using namespace std;// 스위치 개수int switch_cnt;// 스위치 상태int switch_state[110..
[백준/C++] 1251번: 단어 나누기 문제https://www.acmicpc.net/problem/1251문제 요약알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 진행한다. 1. 단어에서 임의의 두 부분을 골라 단어를 쪼갠다.(각각은 적어도 길이가 1이상인 단어이다.) 2. 나누어진 세 개의 작은 단어들을 앞뒤로 뒤집고, 원래의 순서대로 합친다. 위 과정의 결과 문자열 중 사전 순으로 가장 앞서는 단어를 출력한다.코드#include #include #include using namespace std;string str;string first_str;string second_str;string third_str;string res = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";in..
[백준/C++] 4344번: 평균은 넘겠지 문제https://www.acmicpc.net/problem/4344문제 요약각 테스트 케이스마다 학생 수 n명의 점수가 주어진다. 점수는 0 이상 100 이하인 정수이다. 각 케이스마다 한 줄씩 평균을 넘는 학생의 비율을 반올림하여 소수점 셋째자리까지 반올림하여 출력한다.코드#include #include #include using namespace std;int t;int main() { // 입출력 속도 향상 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> t; while (t--) { int n; cin >> n; double avr = 0; v..
[백준/C++] 17478번: 재귀함수가 뭔가요? 문제https://www.acmicpc.net/problem/17478문제 요약평소에 교수님은 재귀 함수가 무엇인지에 대한 많은 질문을 받아왔다. 재귀함수가 무엇인지 물어보는 학생들을 위해 자동 응답 챗봇을 만들었다. 재귀 횟수 N이 주어질 때, 챗봇의 응답 결과를 출력한다. 코드#include using namespace std;int n;void dfs(int cnt) { // 마지막 대답 출력 후 종료 if (cnt == n) { for (int i = 0; i > n; // 첫 문장 cout 코드 설명재귀 함수를 이용하여 문제를 해결한다.고찰오타가 있는지 꼼꼼히 살펴야 한다.
[백준/C++] 11057번: 오르막 수 문제https://www.acmicpc.net/problem/11057문제 요약오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이 때, 인접한 수가 같아도 오름차순이라고 가정한다. 수의 길이 N이 주어졌으 때, 오르막 수의 개수를 출력한다.+ 수는 0으로 시작할 수 있다.코드#include #include using namespace std;int n;// dp[i][j]: i자리 수 중 j로 끝나는 오르막 수int dp[1010][10];int main() { // 입출력 단축 코드 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; // 1자리 수일 때 오르막 수의 개수 설정 for..
[백준/C++] 11403번: 경로 찾기 문제https://www.acmicpc.net/problem/11403문제 요약가중치가 없는 방향 그래프 G에 대한 정보가 인접 행렬로 주어진다. 이 때, 모든 정점 (i, j)에 대해서 i에서 j로 가는 길이가 양수인 경로가 있는지 없는지를 출력한다. + 있으면 1, 없으면 0을 출력한다.코드#include #include using namespace std;int n;// res[i][j]: i에서 j로 갈 수 있는지 정보 (1 or 0)int res[1010][1010];int main() { // 입출력 단축 코드 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; // 단일 간선을 통해 i에..