BOJ - 2292 벌집
·
코딩테스트
해결방법구조를 자세히 보면 한 층마다 6개씩 방의 개수가 늘어난다는 사실을 알 수 있다. 즉, 층이 늘어날 때마다 방의 개수가 6, 12, 18... 이런 순으로 늘어난다는 것이다. 따라서 입력받은 값보다 방의 개수가 많아지기 전까지 6 * 층의 수씩을 더해가면서 몇 개의 방을 지나는지를 측정하여 구할 수 있다. 정답 코드#include using namespace std;int main(){ int N, ref = 1, count = 1; cin >> N; while (ref
BOJ - 네 번째 점 3009
·
코딩테스트
해결방법무식하게 if문을 많이 돌린 방법이다...세 점의 좌표값이 주어지면, 그 세 점의 좌표값 중 겹치지 않는 한 값을 각각 x, y좌표로 만들어준다.예를 들어 (2, 3), (2, 4), (3, 4) 이렇게 값이 주어졌다면 (3, 3)이 네번째 점의 좌표가 되는 것이다. 정답 코드#include using namespace std;struct Dot{ int Xpos; int Ypos;};int main(){ Dot dots[3]; Dot newdots; for (int i = 0; i > dots[i].Xpos >> dots[i].Ypos; } if (dots[0].Xpos == dots[1].Xpos) { newdots.Xpos = dots[2].Xpos; } else if (dots[0].Xp..
BOJ - 수 정렬하기 3 10989
·
코딩테스트
해결방법원래는 sort를 사용하여 정렬을 해주면 되지 않을까 생각했는데, 메모리 제한과 시간제한을 보고 코드를 좀 변경했다.입력되는 수는 10000보다 작은 자연수이므로, 배열을 10000정도 크기로 만들고, 입력받은 수를 배열의 인덱스로 사용하여 수가 입력될 때마다 값을 1 올려서 저장한다.이후 출력할 때 입력받은 수의 값 만큼 출력을 반복해주면 된다. 정답 코드#include #include #include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; int input[10001] = { 0 }; for (int i = 0; i > ..
BOJ - 알록달록 앵무새 28445
·
코딩테스트
해결방법vector를 통해서 색조합을 만들어 준다. 여기서 중요한 점은 예를 들어 부모가 각각 갈검, 흰보 조합이라면 갈갈, 갈검, 갈흰, 갈보 등등...의 조합이 나올 수 있다는 것이다. 즉, 몸통, 꼬리 구분 없이 최대 16가지 조합이 나온다는 것이다.따라서 우리가 해야 하는 일은 범위 기반 for루프를 통해 조합 가능한 모든 경우의 수를 pair 쌍으로 저장해주고, sort를 통해 사전순으로 정렬하고, unique를 사용해서 중복되는 경우의 수를 제거해주는 것이다. 정답 코드#include #include #include #include using namespace std;int main(){ string body1, tail1, body2, tail2; cin >> body1 >> ta..
BOJ - 준살 프로그래밍 대회 7513
·
코딩테스트
해결방법문제를 해석하는게 푸는것보다 어려웠던 문제. 테스트 케이스 수만큼 반복하는 전체 반복문 안에 단어의 수를 구하는 반복문, 참가자의 수만큼 반복하는 반복문, 그 안에 비밀번호 정보(정수)를 입력받고 그것을 배열의 key로 사용하여 출력해주는 반복문 등, 그냥 문제 해석이 어려웠던 문제이다. 정답 코드#include #include #include using namespace std;int main(){ int Testcase, m, n, k, count = 1, temp; cin >> Testcase; for (int i = 0; i > m; vector words(m); for (int j = 0; j > words[j]; } ci..
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