Computer Engineering/알고리즘 테스트

코드업[3130]- 소들의 헤어스타일 / java 데이터 타입

말하는호구마 2021. 1. 4. 02:50

스택의 문제였고 쉬웠지만 작은특이점이 있는 문제이다.

https://codeup.kr/problem.php?id=3130

나의 풀이는 아래와 같다.

import java.util.*;
public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int tall[]=new int[n];
		for(int i=0;i<n;i++) {
			tall[i]=sc.nextInt();
		}
		long answer=0;
		
		for(int i=0;i<n-1;i++) {
			for(int j=i+1;j<n;j++) {
				if(tall[i]>tall[j])
					answer++;
				else
					break;
						
			}
		}
		System.out.println(answer);
		
	}
		
}

특이점은 long자료형을 쓴 것이다.

처음에 int로 썼다가 11개의 테스트 케이스중 11번째에서 실패했다.

소가 최대 80000마리가 존재할 수 있다.

만약 소가 80000마리로 주어지고 내림차순으로 정렬되어 있다면 80000!와 가까운 수가 정답일 것이다. 

이 때의 답은 int형으로 나타낼 수 없다.

아래의 표를 참고하자.

종류 데이터형 크기(byte/bit) 표현 범위
논리형 boolean 1/8 true/false
문자형 char 2/16 '\u0000' ~ 'uFFFF' (16비트 유니코드 문자 데이터)
정수형 byte 1/8 -128 ~ 127
short 2/16 -32768 ~ 32767
int 4/32 -2147483648 ~ 2147483647
long 8/64 -9223372036854775808 ~ 9223372036854775807


실수형 float 4/32 1.4E-45 ~ 3.4028235E38
double 8/64 4.9E-324 ~ 1.7976931348623157E308