26번 문제   

 

 


    내가 풀이한 답   

 N명의 선수 중 맨 앞에(Index 0) 있는 선수는 1로 고정이고 그 뒤에 있는 선수들은 Index + 1에 해당하는 수에서 앞의 선수들보다 값이 크다면 하나씩 감소하는 방법으로 코드를 짰다.

 

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
	//freopen("input.txt", "rt", stdin);

	int n, i, j, temp=0;
	scanf("%d", &n);
	int *arr = (int *)malloc(sizeof(int) * n);
	
	for(i=0; i<n; i++){
		scanf("%d", &arr[i]);
	}
	
	printf("%d ", 1);
	
	for(i=1; i<n; i++){
		temp = i+1;
		for(j=i-1; j>=0; j--){
			if(arr[i] > arr[j]) temp--;
		}
		printf("%d ", temp);
	}
	
	free(arr);
	return 0;
}

 

 결과는 통과하였다.

 

 


    사이트의 답안   

#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
	freopen("input.txt", "rt", stdin);
	int i, j, n, cnt=0;
	scanf("%d ", &n);
	vector<int> a(n+1);
	for(i=1; i<=n; i++){
		scanf("%d", &a[i]);
	}
	printf("1 ");
	for(i=2; i<=n; i++){
		cnt=0;
		for(j=i-1; j>=1; j--){
			if(a[j]>=a[i]) cnt++;
		}
		printf("%d ", cnt+1);
	}
	return 0;
}

 

  사이트의 답은 index + 1이 아닌 0부터 시작하여 증가하였음을 확인하였다. 

'알고리즘 & 자료구조 > 기초 다잡기' 카테고리의 다른 글

28. N!에서 0의 개수  (0) 2020.09.08
27. N!의 표현법  (0) 2020.09.08
25. 석차 구하기  (0) 2020.09.08
24. Jolly Jumpers  (0) 2020.09.08
23. 연속 부분 증가수열  (0) 2020.09.08