문제풀이/BOJ
[C++ 백준] 2675 문자열 반복
[C++ 백준] 2675 문자열 반복
2021.05.12블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫째 줄에 테스트 케이스의 개수 T(1 count; cin >> str; for (int j = 0; j < str.length(); j++) { for (int k = 0; k < count; k++) { cout
[C++ 백준] 1157 단어 공부
[C++ 백준] 1157 단어 공부
2021.02.02블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 풀이 전략 아스키코드를 활용해서 대소문자 변환 배열을 이용하여 최대 개수 알파벳 구하기 소스 코드 #include #include using namespace std; int main() { string str; int arr[26] = { 0, }; int max = 0; char c = '?'; cin >> str; for (char c : str) { if ('a'
[C++ 백준] 4344 평균은 넘겠지
[C++ 백준] 4344 평균은 넘겠지
2021.01.09블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 테스트 케이스 개수 C가 주어진다. 각 테스트 케이스마다 학생의 수 N(1 > x; int arr[1000]; for (int j = 0; j > arr[j]; sum += arr[j]; } double avg = ( sum / (double)x ); for (int j = 0; j < x; j++) { if (avg < arr[j]) count++; } cout
[C++ 백준] 11004 K번째 수
[C++ 백준] 11004 K번째 수
2020.12.11블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫째 줄에 N(1
[C++ 백준] 1712 손익분기점
[C++ 백준] 1712 손익분기점
2020.11.04블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 A의 고정비용과 1대의 노트북을 생산하는데 드는 가변비용 B, 한대 판매했을 때의 가격 C가 주어졌을 때 손익분기점을 구하는 프로그램을 작성하시오. 손익분기점(Break-Even Point): 최초로 총 수입이 총비용보다 많아져 이익이 발생하는 지점 첫 번째 줄에 손익분기점을 출력. 손익분기점이 존재하지 않으면 -1 출력 풀이 전략 손익분기점이 존재하지 않는 상황에 대한 판별 포인트는 얼만큼 이익이 나서 기본비용을 메꾸느냐 이다. 이를 식으로 계산하면 기본비용/(판매비용-제작비용)이라고 할 수 있다. 손익분기점을 넘겨야 하기 때문에 +1 함 소스 코드 #include using namespace std; int main() { int..
[C++ 백준] 10809 알파벳 찾기
[C++ 백준] 10809 알파벳 찾기
2020.08.23블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 알파벳 소문자로만 이루어진 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 풀이 전략 알파벳은 모두 소문자로 이루어져 있기에 a의 아스키코드 값을 기준으로 잡은 뒤 계산했다. 입력값을 아스키코드로 바꿔 해당 문자가 몇 번째의 알파벳인지 확인했다. 입력값-기준값 = a-z에서 해당 문자의 위치 string에서 해당 문자의 인덱스 값이 결과의 값이 되게 구현했다. 소스 코드 #include #include using namespace std; int..
[C++ 백준] 10989 수 정렬하기 3
[C++ 백준] 10989 수 정렬하기 3
2020.07.26블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 N(1 n; int arr[ 10001 ] = { 0 }; for ( int i = 0; i > x; arr[ x ] += 1; } for ( int i = 0; i < 10001; i++ ) { if ( arr[ i ] == 0 ) continue; for ( int j = 0; j < arr[ i ]; j++ ) { cout
[C++ 백준] 2751 수 정렬하기 2
[C++ 백준] 2751 수 정렬하기 2
2020.07.22블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫째 줄에 수의 개수 N(1 n; vector vec; for ( int i = 0; i > x; vec.push_back( x ); } sort( vec.begin(), vec.end() ); for ( int x : vec ) { cout
[C++ 백준] 1874 스택 수열
[C++ 백준] 1874 스택 수열
2020.07.08블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫 줄에 n (1 ≤ n ≤ 100,000)이 주어진다. 둘째 줄부터 n개의 줄에는 수열을 이루는 1 이상 n이하의 정수가 하나씩 순서대로 주어진다. 물론 같은 정수가 두 번 나오는 일은 없다. 풀이 전략 입력한 값까지 수를 순서대로 쌓는다. (스택 사용) 스택에 들어간 마지막 숫자와 입력한 숫자가 같다면 빼낸다. 같지 않다면 불가능!! 결과를 출력 할 때 endl로 인한 시간 초과가 나서 특수문자 '\n'을 사용하였다. 소스 코드 #include #include #include using namespace std; int main() { stack s; vector result; int cnt = 1; int n; cin >> n;..
[C++ 백준] 11650 좌표 정렬하기
[C++ 백준] 11650 좌표 정렬하기
2020.06.25블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 풀이 전략 x, y 좌표의 맵핑 정렬 기준 1. x좌표 정렬 2. (x좌표 동일 시) y좌표 정렬 10814번 문제와 유사하다. 하지만 이번엔 multimap이 아닌 vector의 타입으로 pair를 사용하고, sort를 커스텀해서 풀어보았다. 소스 코드 #include #include #include using namespace std; bool compare( pair a, pair b ) {..
[C++ 백준] 10814 나이순 정렬
[C++ 백준] 10814 나이순 정렬
2020.06.25블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 풀이 전략 나이와 이름의 맵핑을 중점으로 생각하였다. 키로 사용한 나이가 중복될 수 있으므로 map이 아닌 여러 키를 가질 수 있는 multimap을 사용하였다. 소스 코드 #include #include #include using namespace std; int main() { multimap..
[C++ 백준] 1546 평균
[C++ 백준] 1546 평균
2020.03.23문제 설명 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 최대값 M을 골라 모든 점수를 점수/M*100로 변경 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답 풀이 과정 N값 입력 후 N값에 맞는 double형 변수 및 배열 선언 공식을 사용하여 평균값 구하기 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답 이라는 조건이 있으므로 자료형에 주의해야한다. 소스 코드 #include using namespace std; int main() { int count = 0; double max, sum = 0; c..