본문 바로가기
Algorithm/🏫assignment

# 교차점 계산

by yewoneeee 2022. 7. 4.

# 문제

 

# 풀이

각각 N회 반복하는 이중 for문을 생각하면 최대 1억회 반복하게 된다

T의 범위는 나와있지 않아 T까지 포함한 시간 복잡도는 잘 모르겠지만

N이 최대 10,000이기 때문에 O(N^2) = 1억회 즉, 대략 1초

시간 제한이 따로 안나와있어서 일단 이 방법으로 해결했음

#include <iostream>
#include <fstream>
using namespace std;
int first[10000];
int second[10000];
ifstream fin("cross.inp");
ofstream fout("cross.out");

int main() {
	int T, N, num;
	fin >> T;
	for (int i = 1; i <= T; i++) {
		int cnt = 0;
		int visit[10000] = { 0, };
		fin >> N;
		for (int j = 0; j < N; j++) fin >> first[j];
		for (int j = 0; j < N; j++) fin >> second[j];
		for (int j = 0; j < N; j++) {
			for (int k = 0; k < N; k++) {
				num = second[k];
				if (first[j] == num) {
					visit[num - 1] = 1;
					break;
				}
				else if (!visit[num - 1]) cnt++;
			}
		}
		fout << "Case " << i << ": " << cnt << "\n";
	}
}

 

'Algorithm > 🏫assignment' 카테고리의 다른 글

# Interesting Gain  (0) 2022.09.11
# 계단 오르기  (0) 2022.09.09
# Spin And Slide  (0) 2022.09.04
# Test  (0) 2022.09.03
# Bowling 점수 계산하기  (0) 2022.07.09

댓글