BOJ - 좌표 정렬하기 11650
·
코딩테스트
해결방법pair와 sort를 이용하여 오름차순으로 정렬해주면 된다. 정답 코드#include #include #include using namespace std;int main(){ int N; cin >> N; vector> v(N); for (int i = 0; i > v[i].first >> v[i].second; } sort(v.begin(), v.end()); for (int i = 0; i
BOJ - 설탕 배달 2839
·
코딩테스트
해결방법5로 나눠봤을때 나머지가 0이 아니라면 보류하고 3으로 빼본다.그 과정을 0보다 큰 동안 반복하다가 5로 나눌수 있다면 나눈 값과 3으로 뺀 횟수를 합산하여 출력한다.루프를 반복하다가 N이 0보다 작아진다면 5와 3만으로 나눌수 없다는 뜻이기 때문에 -1을 출력한다. 정답 코드#include using namespace std;int main(){ int N; cin >> N; int count = 0; while (N >= 0) { if (N % 5 == 0) { count += N / 5; cout
BOJ - 팰린드롬수 1259
·
코딩테스트
해결방법간단하게, 숫자를 문자열로 입력받고, 문자열의 처음과 마지막이 같다면 상관없지만, 다르다면 notPal을 true로 바꿔준다.만약 단어가 notPal이라면 no를, notPal이 false라면 yes를 출력해주는 방식으로 작성해주었다. 정답 코드#include using namespace std;int main(){ string str = "-1"; int size = 0; bool notPal = false; while (str != "0") { cin >> str; if (str == "0") return 0; size = str.size(); for (int i = 0; i
BOJ - 단어 정렬 1181
·
코딩테스트
해결방법sort 메서드를 이용하여 단어를 정렬하는데, 정렬 방법을 따로 만들어서 정렬을 해주었다.내 방식은 dicSort()라고 하는 메서들를 정의하는 것이었는데, 단어의 길이가 같다면 단어를 아스키 코드순으로 정렬하고, 다르다면 길이가 긴쪽이 뒤로 가도록 만드는 방법이었다. 그런데 여기까지만 하고 제출했더니 답이 틀렸다고 나왔다. 어째서일까 생각을 했었는데, 곰곰히 생각해보니 중복된 단어를 제거하지 않은 것이었다.erase() 메서드를 이용하여 중복된 단어를 지우는 과정을 추가해주면 정답이 된다. 정답 코드#include #include #include using namespace std;bool dicSort(const string& a, const string& b){ if (a.length() =..
BOJ - 생일 5635
·
코딩테스트
해결방법문제의 핵심은 나이를 어떻게 비교하고, 그 나이와 이름을 어떻게 매칭하는가이다.나의 경우에는 나이와 이름을 구조체를 이용하여 매치시켰다. 나이를 정렬하는 방법은 sort()메서드를 이용하였다. sort() 메서드는 시작점, 끝점, 비교함수를 매개변수로 이용한다.이 코드에서는 비교함수로[=](const student& a, const student& b) { if (a.yyyy == b.yyyy) { if (a.mm != b.mm) return a.mm > b.mm; else return a.dd > b.dd; } return a.yyyy > b.yyyy; });가 사용되었다. 한번 자세히 알아보자. 값의 비교를 위해 사용하는 람다함수의 매개변수는 a..
BOJ - 자작나무가 없소~ 31496
·
코딩테스트
해결방법입력되는 단어에서 특정 단어(예 : stone)가 포함되어 있는지를 파악해야 한다. 이 특정 단어는 _로 구분되어 있다면 해당하는 단어이지만(stone_axe 등등), 어떤 단어에 포함되는 경우에는 해당하지 않는다(flintstone 등등). 두번째 줄부터 아이템의 이름과 수량이 입력되는데, 이때 입력되는 문자열을 StringStream을 이용하여 입력 스트림처럼 변환해주었다.그다음으로 활용하는 것은 getline 메서드인데, 코드를 보면 ss, 즉 우리가 입력받은 아이템의 스트림을 word에 저장하는데, _가 나올때까지 읽어들인다는 의미이다.즉, stone이 우리가 찾는 이름이고, star_shape_stained_stone이 입력받은 단어라면, star, shape, stained, stone..