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 |