1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include<cstdio> int arr[2000001]; int main(void) { int n; scanf("%d", &n); for(int i=0,t; i<n; i++){ scanf("%d", &t); arr[t+1000000]++; } for(int i=0;i<=2000000; i++) { if (arr[i]==1) printf("%d\n", i-1000000); } return 0; } | cs |
절대값이 1,000,000보다 작은 수...
문제 좀 제대로 읽자ㅠㅠㅠ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<cstdio> #include<iostream> #include<algorithm> #include<vector> using namespace std; int main(void) { int n; scanf("%d", &n); vector<int> arr(n); for(int i=0; i<n; i++) scanf("%d", &arr[i]); sort(arr.begin(), arr.end()); for(int i=0; i<n; i++) printf("%d\n", arr[i]); return 0; } | cs |
벡터로 풀면 메모리는 조금 더 적게 나가는 대신 시간이 아주 조금 더 걸림
- JAVA
코드 출처 : https://st-lab.tistory.com/106?category=857114
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); boolean[] arr = new boolean[2000001]; int num = 1000000; for(int i=0; i<n; i++) arr[Integer.parseInt(br.readLine())+num] = true; for(int i=0; i<arr.length; i++){ if(arr[i]) { sb.append((i - num)).append("\n"); } } System.out.print(sb); } } | cs |
JAVA 코드 추가한 김에 카운팅 정렬 정리 잘 되어있는 블로그를 추가한다.
'백준 1 > 수학' 카테고리의 다른 글
| [백준 1934] 최소공배수 (0) | 2020.12.05 |
|---|---|
| [백준 2609] 최대공약수와 최소공배수 (0) | 2020.12.05 |
| [백준 10989] 수 정렬하기 3 (0) | 2020.12.05 |
| [백준 6588] 골드바흐의 추측 (0) | 2020.12.05 |
| [백준 3486] Adding Reversed Numbers 역수 더하기 (0) | 2020.12.05 |