<문제>
https://www.acmicpc.net/problem/7568
<Fail>
N = int(input())
arr = []
for i in range(N):
a,b = map(int,input().split())
arr.append(tuple(a,b))
for j in range(N):
k = 1
for k in range(N):
if arr[j] == arr[k]:
continue
if arr[j][0] < arr[k][0]:
if arr[j][1] < arr[k][1]:
k+=1
print(k,end = '')
<틀린 이유>
1. 원래 출력돼야 하는 k값과 반복문 인자값 k와 중복이되, 올바르게 k값이 출력될 수 없습니다.
2.tuple()을 잘못 사용하여 TypeError가 발생합니다. tuple()에는 인자가 1개가 와야 합니다. list(), int(),,,,,도 마찬가지
<Pass>
#7568번-덩치
N = int(input())
arr = []
for i in range(N):
a,b = map(int,input().split())
arr.append((a,b))
for j in range(N):
k = 1
for p in range(N):
if arr[j][0] < arr[p][0] and arr[j][1] < arr[p][1]:
k+=1
print(k,end = ' ')
-- (C언어) 7568 --
#include<stdio.h>
int main()
{
int arr[50][2] = { 0 };
int n, a, b;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d %d", &a, &b);
arr[i][0] = a;
arr[i][1] = b;
}
for (int j = 0; j < n; j++)
{
int k = 1;
for (int p = 0; p < n; p++)
{
if ((arr[j][0] < arr[p][0]) && (arr[j][1] < arr[p][1])) {
k++;
}
}
printf("%d ", k);
}
return 0;
}
처음 코드에서 outofbounds 에러가 발생하였었는데, int arr[2][50]과 같이 이차원 배열의 행과 열을 반대로 생각하여 발생한 에러였습니다.