All
-
[ 정렬 ] 두 배열의 원소 교체알고리즘/이코테 - 실전 2021. 8. 10. 16:32
난이도 : 하 풀이시간 : 20분 시간제한 : 2초 [ 정렬 ] 두 배열의 원소 교체 동빈이는 두 개의 배열 A와 B를 가지고 있다. 두 배열은 N개의 원소로 구성되어 있으며, 배열의 원소는 모두 자연수이다 동빈이는 최대 K 번의 바꿔치기 연산을 수행할 수 있는데, 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다 동빈이의 최종 목표는 배열 A의 모든 원소의 합이 최대가 되도록 하는 것이며, 여러분은 동빈이를 도와야한다 N, K, 그리고 배열 A와 B의 정보가 주어졌을 때, 최대 K 번의 바꿔치기 연산을 수행하여 만들 수 있는 배열 A의 모든 원소의 합의 최댓값을 출력하는 프로그램을 작성하라 예를 들어 N = 5, K = 3이고, 배열 ..
-
[ 정렬 ] 성적이 낮은 순서로 학생 출력하기알고리즘/이코테 - 실전 2021. 8. 10. 16:05
난이도 : 하 풀이시간 : 20분 시간제한 : 1초 [ 정렬 ] 성적이 낮은 순서로 학생 출력하기 N명의 학생 정보가 있다. 학생 정보는 학생의 이름과 학생의 성적으로 구분된다. 각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오. :: 입력 조건 첫 번째 줄에 학생의 수 N이 입력된다.(1 n; vector score; for (int i = 0; i > name >> s; score.push_back(make_pair(name, s)); } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if(score[i].se..
-
[ 정렬 ] 위에서 아래로알고리즘/이코테 - 실전 2021. 8. 10. 13:54
난이도 : 하 풀이시간 : 15분 시간제한 : 1초 [ 정렬 ] 위에서 아래로 하나의 수열에는 다양한 수가 존재한다. 이러한 수는 크기에 상관없이 나열되어 있다. 이 수를 큰 수부터 작은 수의 순서로 정렬해야 한다. 수열을 내림차순으로 정렬하는 프로그램을 만드시오. :: 입력 조건 첫째 줄에 수열에 속해 있는 수의 개수 N이 주어진다.(1 n; for (int i = 0; i > k; nums.push_back(k); } for (int i = 0; i < n; i++) { for (int j = i+1; j < n; j++) { if (nums[i] < nums[j]) { int tmp = nums[i]; nums[i] = nums[j]; nums[j] = t..
-
[ DFS | BFS ] 미로 탈출알고리즘/이코테 - 실전 2021. 7. 28. 18:41
난이도 : 중하 풀이시간 : 30분 시간제한 : 1초 [ DFS | BFS ] 미로 탈출 N x M 크기의 직사각형 형태의 미로에 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 현재 위치는 (1, 1)이고 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다. 괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하라. 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다. :: 입력 조건 첫째 줄에 두 정수 N, M(4 = m) { continue; } if (map[new_x][new_y] == 0) { continue; } if (map[new_x][n..
-
[ DFS | BFS ] 음료수 얼려 먹기알고리즘/이코테 - 실전 2021. 7. 28. 15:55
난이도 : 중하 풀이시간 : 30분 시간제한 : 1초 [ DFS | BFS ] 음료수 얼려 먹기 N * M 크기의 얼음틀이 있다. 구멍이 뚫려있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 다음의 4 X 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다. :: 입력 조건 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다.(1 = m) { return false; } if (trey[x][y] == 0) { trey[x][y] = 1; dfs(x - 1, y); dfs(x, y ..
-
[ 6996 ] 애너그램 - array, vector알고리즘/BOJ 2021. 7. 27. 16:20
- [ 6996 ] 애너그램 두 단어 A와 B가 주어졌을 때, A에 속하는 알파벳의 순서를 바꾸어서 B를 만들 수 있다면, A와 B를 애너그램이라고 한다. 두 단어가 애너그램인지 아닌지 구하는 프로그램을 작성하시오. :: 입력 첫째 줄에 테스트 케이스의 개수(> n; string a, b; while (n--) { int alpa1[26] = { 0, }; int alpa2[26] = { 0, }; cin >> a >> b; if (a.length() != b.length()) { cout
-
[ 5597 ] 과제 안 내신 분 ..? - array, vector알고리즘/BOJ 2021. 7. 27. 14:37
- [ 5597 ] 과제 안 내신 분 ..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. :: 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다. :: 출력 출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다. - try 1 : 31짜리 배열을 만들고 입력으로 들어온 ..
-
[ 2953 ] 나는 요리사다 - array, vector알고리즘/BOJ 2021. 7. 27. 14:09
- [ 2953 ] 나는 요리사다 "나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5점까지 있다. 각 참가자가 얻은 점수는 다른 사람이 평가해 준 점수의 합이다. 이 쇼의 우승자는 가장 많은 점수를 얻은 사람이 된다. 각 참가자가 얻은 평가 점수가 주어졌을 때, 우승자와 그의 점수를 구하는 프로그램을 작성하시오. :: 입력 총 다섯 개 줄에 각 참가자가 얻은 네 개의 평가 점수가 공백으로 구분되어 주어진다. 첫 번째 참가자부터 다섯 번째 참가자까지 순서대로 주어진다. 항상 우승자가 유일한 경우만 입력으로 주어진다...