시각 해당 문제는 이것이 코딩테스트다with 파이썬 예제 4-2번 입니다. □ 소스 코드 #include void sight(){ int n; cin>>n; int endTime = n*3600 + 59*60 + 59; //입력된 시간을 초 시간으로 변경 int count = 0; //3이 포함된 경우 카운트 for(int i=0;i 알고리즘/구현 2023.01.06
상하좌우 해당 문제는 이것이 코딩테스트다with 파이썬 예제 4-1번 입니다. #include void LRUD(){ int n; cin>>n; int x = 1; //x 좌표 int y = 1; //y 좌표 cin.ignore(); // n을 입력하고 뒤에 \n문자열이 남아 있어 버퍼에서 한 문자를 제거 해야 한다. string input; getline(cin, input); // 문자열 입력 // 공백 문자는 점프 for(int i=0; i 알고리즘/구현 2023.01.06
백준[13305] 주유소 어려운 문제...ㅠ 문제를 풀때 생각한 경우의 수 현재 도시 주유소에서 현재 주유소 보다 저렴하고 가까운 다른 도시 주유소 까지 거리 x 현재 주유소 가격 현재 주유소가 가장 저렴한 경우 위 경우의 수를 생각하고 문제를 풀었는데... 문제 3번의 조건이 충복이 되지 않는다고 한다 ㅠ □ 소스 코드 #include /* 가격이 가장 싼 주유소가 나오면 남은 거리 모두 주유 도시에서 자신보다 작은 가격이 있는 경우 해당 지점거리 까지만 주유, 없는 경우 끝까지 주유 */ void gasStation(){ int n; //도시 개수 cin>> n; vector km; vector price; int totaldis = 0; // 각 도시 사이의 거리 입력 for(int i=0;i> dis; totaldis +.. 알고리즘/Greedy 2023.01.05
백준[1541] 잃어버린 괄호 괄호를 사용하여 입력된 식을 최솟값으로 만드는 문제이다. 해결 방법 문자열에 -가 한 개라도 있으면 - 뒤의 숫자들은 모두 뺄셈처리를 하면 최솟값이 된다. 예시 '5-1+4+3-2+1+3'이라는 식이 입력되었을 때 최솟값으로 만들기 위해서는 괄호를 다음과 같이 지정하면 된다. '5-(1+4+3)-(2+1+3)'으로 괄호를 사용하면 해당 식의 최솟값이 나온다. □ 소스 코드 #include /* - 직후에 ( 시작 첫 번쨰 - 이후에 두번째 - 이전까지 괄호를 모든 식에 적용 -가 한개라도 있는 경우 모두 괄호처리를 통해 빼기 계산이 가능해 진다. */ void lost(){ string input; cin>>input; string shortNum; int result = 0; bool checkMinu.. 알고리즘/Greedy 2023.01.05
백준[11399] ATM 해당 문제도 앞선 그리디 백준 문제들을 풀었다면 쉽게 풀 수 있는 문제이다. □ 소스코드 #include void ATM(){ int n; cin >> n; vector v; //입력받는 구문 for(int i=0;i>input; v.push_back(input); } // 오름차순으로 정렬 sort(v.begin(), v.end()); // 각 사람이 기다리는 시간 저장 for(int i=0;i 알고리즘/Greedy 2023.01.05
백준[1931] 회의실 배정 해당 문제를 풀기 위해서 회의가 끝나는 시간들을 기준으로 오름차순 정렬을 한다. 가장 첫 번째 회의를 선택하여 계산을 진행하면 가장 많은 회의를 선택할 수 있다. □ 소스코드 #include // 회의가 끝나는 시간을 기준으로 오름차순 정렬하는 함수 bool sorting(pair p1, pair p2) { // compare 함수 if (p1.second == p2.second) { return p1.first > n; vector v; // 입력받는 구문 for(int i=0;i> start >> end; v.push_back(make_pair(start, end.. 알고리즘/Greedy 2023.01.05
백준[11047] 코인0 전통적인 그리디 알고리즘 문제이다. □ 소스코드 #include void coinZero(){ int n,k; cin>>n>>k; vector v; for(int i=0;i>input; v.push_back(input); } int count = n; int result = 0; while(count>0){ result += k / v[count-1]; k = k % v[count-1]; count--; } cout 알고리즘/Greedy 2023.01.05