강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

zbqmgldjfh님의 프로필 이미지
zbqmgldjfh

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

49. 쌓기 블록의 최댓값 (2차원 배열 응용)

조금 다른 풀이방식

작성

·

216

2

합의 결과만 출력하면 되는 문제이기 때문에 2차원 배열을 만들필요는 없다 생각했습니다. 

2차원 배열을 만들지 않고도 푸는 풀이를 다른분들에게도 공유해볼까 합니다!!

#include <bits/stdc++.h>
using namespace std;

#define rep(i,k) for(i = 0; i < k; i++)
#define REP(i,n,k) for(i = n; i < k; i++)

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	//freopen("input.txt", "rt", stdin);

	int num, i, j;
	cin >> num;
	
	vector<int> a(num);
	vector<int> b(num);
	
	rep(i,num)
		cin >> a[i];
	
	rep(i,num)
		cin >> b[i];
		
	int sum(0);
		
	for(i = num-1; i > -1; i--){
		for(j = 0; j < num; j++){
			sum += (a[i] < b[j]) ? a[i] : b[j];
		}
	}
	
	cout << sum;

	return 0;
}

퀴즈

57%나 틀려요. 한번 도전해보세요!

선택 정렬(Selection Sort) 알고리즘은 각 단계에서 어떤 작업을 수행하여 배열을 정렬하나요?

인접한 두 요소를 비교하여 필요시 교환합니다.

정렬되지 않은 부분에서 가장 작은(또는 큰) 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.

현재 요소를 이미 정렬된 부분 배열의 적절한 위치에 삽입합니다.

배열을 분할하고 각 부분을 재귀적으로 정렬한 후 병합합니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

감사합니다^^

zbqmgldjfh님의 프로필 이미지
zbqmgldjfh

작성한 질문수

질문하기