목록c++ (8)
언유상씨의 건전한 취미생활

문제 이름 : 두 수 비교하기 문제 번호 : 1330 사용 언어 : C++ 문제는 다음과 같다. if문을 연습해 볼 수 있는 문제이다. if - else if - else의 구성으로 코드를 작성하면 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 #include using namespace std; int main() { int a, b; cin >> a >> b; if(a > b) cout

문제 이름 : 신입 사원 문제 번호 : 1946 사용 언어 : c++ 문제는 다음과 같다. pair와 vector를 이용해서 성적을 전부 처리한뒤, 1차 성적 우수자 순으로 정렬을 해준다. 그리고 뒤에서부터 역순으로 연산을 진행한다. 이미 뒤에 있다는 이야기는 앞선 사람들 보다 1차 성적이 낮다는 의미가 되므로, 본인보다 앞에 있는 사람보다 2차 성적이 낮다는 의미는 1차 2차 모두 타 지원자 보다 성적이 떨어진다는 것이다. 따라서 소스코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #define _CRT_SECURE_NO_WARNINGS ..

문제 이름 : 욱제는 결정장애야!! 문제 번호 : 1292 사용 언어 : C++ 문제는 다음과 같다. 아주 긴 배열을 만든 뒤, 돌아가면서 체크하면 된다. 스티커를 붙일때마다 스티커의 개수를 늘려주고, 스티커가 두개 붙은 경우에는 스티커를 다 떼어버리므로 -2를 해주면 된다. 이때, 욱제의 돌림판이 가지고 있는 능력으로 선택된것은 다시 선택되지 않으므로 부가적인 것은 생각하지 않아도 된다. 매 차례마다 스티커의 개수를 비교한다. 소스코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #define _CRT_SECURE_NO_WARNINGS #include #include #include #incl..

문제 이름 : 쉽게 푸는 문제 문제 번호 : 1292 사용 언어 : C++ 문제는 다음과 같다. 1000번째 숫자를 찾아보자. n*(n+1) / 2 = 1000 n은 45 언저리가 된다. 이를 통해 1부터 45까지 각 숫자 만큼 그 숫자를 넣어주면서, 원하는 인덱스 범위 안에 들어갈 경우에는 그 값들을 모두 더해주면 된다. 소스 코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int main() { ..

문제 이름 : 인기 투표 문제 번호 : 11637 사용 언어 : C++ 문제는 다음과 같다. 각 후보들의 득표수를 모두 더하면서, 동시에 가장 많은 표를 받은 후보의 번호와 받은 표의 수를 비교하면서 진행한다. 마지막에 가장 많은 표를 받은 후보가 몇명인지를 계산하여, 여러명의 후보가 최다 득표자인 경우를 처리한다. 이번 문제 역시도 시간이 넉넉해서 풀기에 어렵지 않은 문제였다. 소스 코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 #define _CRT_SECURE_NO_WARNINGS #include..

문제 이름 : 영식이와 친구들 문제 번호 : 1592 사용 언어 : C++ 문제는 다음과 같다. 시간이 넉넉해서 풀기에 어렵지 않은 문제이다. 베열을 만들어 놓고, 돌아가면서 하나씩 선택하면된다. 각 사람이 몇번 받았는지를 확인하면서 진행하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdi..

소스코드는 다음과 같다. 크게 중요한 부분은 다음과 같다. 1. 입력 받기 과제 제출 기한 후 교내 커뮤니티에 올라온 내용을 보면 입력 받는게 가장 여려웠다는 말이 많았다. insert a b를 어떻게 받고, 어떻게 처리할 것인가? 방법은 scanf의 특성을 이용해서 입력을 받으면 된다. scanf는 " "를 기준으로 끊기에, insert a b는 각각 "insert", "a", "b"로 입력되게 된다. 이를 이용하면, scanf("%s", &order); if (strcmp(order, "insert") == 0) // strcmp 함수를 이용해서 원하는 명령인지를 판별한다. scanf("%d %d", &index, &data); // index와 data를 받아준다. 2. 원소 추가, 삭제 단일 연결..
이번에는 과제로 나왔던 연결리스트 문제를 풀어보려고 한다. 문제는 다음과 같다. 영희는 민수에게 일련의 숫자를 불러달라는 부탁을 했다. 하지만 민수는 영희를 괴롭히고 싶어 순순히 숫자를 불러주지 않고 N개의 3가지 명령을 통해 일련의 숫자를 알 수 있게 하려고 한다. 민수가 사용할 세 가지 작업은 아래와 같다. insert a b : a번위치에 b을 삽입한다. delete a : a번째 위치의 숫자를 제거한다. show : 현재 구성되어있는 숫자들을 보여준다. 영희는 할 일이 많아서 민수의 괴롭힘을 받아줄 수 가없다. 영희를 도와줄 프로그램을 작성하자. 입력 첫 번째 줄에 명령의 개수 n(1≤n≤30)이 주어지고, 2번째 줄부터 n개의 줄에 민수의 명령 이 입력으로 주어진다. insert 명령의 경우 i..