수열 A/B가 있고, 수열 A에서 각각의 순서를 변경하여 수열 B를 만들 수 있는 경우 참, 아닐 경우 거짓을 출력한다.
Ex )
A : 1 1 2 3 4 6
B : 6 1 2 1 4 3
답 : 참
A : 1 1 2 3 4 6
B : 6 5 2 1 1 3
답 : 거짓
sample_input.txt
3
1 2 3
3 2 1
6
1 1 2 3 4 6
6 1 2 1 4 3
10
1 2 3 4 5 6 7 8 9 10
11 1 2 3 4 5 6 7 8 9
6
1 1 2 3 4 6
6 5 2 1 1 3
근데 이 문제가 백준에서 가져온 것 같은데 어떤 문제인지를 못 찾아 채점을 못 하네 -_-;;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class Series {
public static void main(String[] args) throws FileNotFoundException {
System.setIn(new FileInputStream("res/sample_input.txt"));
Scanner sc = new Scanner(System.in);
int N;
while(true) {
try {
N = Integer.parseInt(sc.nextLine()); // 수열의 길이를 받는다.
} catch (Exception e) { // 더이상 다음 문제가 없으면 종료.
break;
}
String[] seriesA = sc.nextLine().split(" "); // 각 라인의 수열을 읽어 공백으로 나누어 배열에 담는다.
Arrays.sort(seriesA); // 문자열 기준으로 정렬되서 1, 10, 2, 3, 4... 이런 순서로 정렬되지만 비교만 할거라 상관 없다.
String[] seriesB = sc.nextLine().split(" ");
Arrays.sort(seriesB);
for (int i = 0; i < N; i++) { // 입력된 수열의 길이만큼 반복
if (seriesA[i].equals(seriesB[i])) {
if (i == N-1) { // 마지막까지 같다면 True를 출력.
System.out.println("True");
}
continue;
} else { // 한 번이라도 서로 다를 경우 False를 출력 후 정지.
System.out.println("False");
break;
}
}
}
}
}
그냥 seriesA, seriesB를 바로 비교하면 될 것 같았는데 이렇게는 모두 False가 뜬다.
if (seriesA.equals(seriesB)) {
System.out.println("True");
} else {
System.out.println("False");
}
==> 전부 False가 뜸...
마찬가지로 hsahCode()를 써도 안 된다. 아마 값은 같아도 Object는 서로 다른 2개의 메모리 공간에 있는 녀석들이라 무조건 값을 비교해야 하는구나...
LCS(Longest Common Subsequence) 라는 알고리즘이라는 것 같다... 다른 풀이는 어떻게 되어있나 봐야겠네.
[자바성능] 자료형 성능 비교
일반적인 프로젝트에서 VO객체 패턴을 많이 사용합니다. 그 객체 안에는 대부분 Collection이나 Map 등의 인터페이스를 상속받는 객체가 많이 사용됩니다. 대부분 목록 데이터를 가장 담기 좋은 것��
12bme.tistory.com
coding-factory.tistory.com/553
[Java] 자바 Vector 사용법 & 예제 총정리
Vector란? Vector는 ArrayList와 동일한 내부구조를 가지고 있습니다. ArrayList와 마찬가지로 Vector내부에 값이 추가되면 자동으로 크기가 조절되며 그다음 객체들은 한 자리씩 뒤로 이동됩니다. 하지만
coding-factory.tistory.com
'개발자 > Algorithm' 카테고리의 다른 글
Kruskal's Algorithm (0) | 2020.09.14 |
---|---|
05. 장기판 포 말잡기 (0) | 2020.08.30 |
04. 토끼 잡기 (0) | 2020.08.28 |
01. 괄호 짝 유효 여부와 N번째 괄호 짝 찾기 (0) | 2020.08.24 |
Dynamic Programing (0) | 2020.04.21 |