개발자 톡
연습문제 톡
[HSAT 4회 정기 코딩 인증평가 기출] 통근버스 출발 순서 검증하기
[4차 통근버스 문제] 파이썬으로 풀면 맞고 c++로 풀면 틀립니다
- 등록일
- 2023-03-07 15:18:14
- 조회수
- 753
- 작성자
- kosy1782
도대체 파이썬 코드랑 c++ 코드 어느 부분이 달라서 c++만 틀리는 걸까요..
import sys
input = sys.stdin.readline
n = int(input())
bus = list(map(int, input().split()))
arr = [[0 for i in range(n + 1)] for j in range(n + 1)]
for j in range(n - 1, -1, -1):
for x in range(1, n + 1):
if bus[j] < x:
arr[x][j] = arr[x][j + 1] + 1
else:
arr[x][j] = arr[x][j + 1]
ans = 0
for i in range(n):
for j in range(i, n):
if bus[i] < bus[j]:
ans += arr[bus[i]][j]
print(ans)
#include
#include
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
int* bus = new int[N];
for(int i=0; i> bus[i];
}
// arr[x][j] := j번째보다 오른쪽에 있는 숫자들 중, x보다 값이 작은 것들의 개수
vector> arr(N+1, vector(N+1, 0));
for(int j=N-1; j>=0; j--){ // N-1부터 거꾸로 해야함; N인 경우는 0
for(int x=1; x<=N; x++){
if(bus[j] < x){ // j번째 버스가 x보다 작으면
arr[x][j] = arr[x][j+1] + 1; // j번째보다 오른쪽에 있는 숫자들 중 x보다 값이 작은 것들의 개수가 증가한다.
} else { // j번째 버스가 x보다 크거나 같으면
arr[x][j] = arr[x][j+1]; // j번째보다 오른쪽에 있는 숫자들 중 x보다 값이 작은 것들의 개수가 증가하지 않는다.
}
}
}
int answer = 0;
for(int i=0; i
#[hsat_4회_정기_코딩_인증평가_기출]_통근버스_출발_순서_검증하기
#python