|
| 1 | +package hackerrank; |
| 2 | + |
| 3 | +import java.util.ArrayList; |
| 4 | +import java.util.Arrays; |
| 5 | +import java.util.List; |
| 6 | + |
| 7 | +public class LonelyInteger { |
| 8 | + |
| 9 | + static int lonelyinteger(int[] a) { |
| 10 | + // ๋ฐ๋ณต๋์ง ์๋ ์์ ์ฐพ์์ ์ถ๋ ฅํ๋ ๋ฌธ์ |
| 11 | + |
| 12 | + //sol1 -> Time limit exceeded |
| 13 | + /* |
| 14 | + if(a.length == 1) return a[0]; |
| 15 | +
|
| 16 | + //๋ฐฐ์ด a ์ ๋ ฌํ๊ธฐ |
| 17 | + Arrays.sort(a); |
| 18 | +
|
| 19 | + //๋ฐฐ์ด a๋ฅผ ๋ฆฌ์คํธ์ ๋ด๊ธฐ |
| 20 | + List<Integer> alist = new ArrayList<>(a.length); |
| 21 | +
|
| 22 | + for(int i : a){ |
| 23 | + alist.add(i); |
| 24 | + } |
| 25 | +
|
| 26 | + //์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ์์ i๋ฒ์งธ์ i+1๋ฒ์งธ๊ฐ ๊ฐ์ผ๋ฉด ๋ ๋ค ๋ฆฌ์คํธ์์ ์ ๊ฑฐ. |
| 27 | + int i=0; |
| 28 | + while(alist.size() != 1){ |
| 29 | + if(alist.get(i) == alist.get(i+1)){ |
| 30 | + alist.remove(i); |
| 31 | + alist.remove(i); |
| 32 | + } |
| 33 | + } |
| 34 | +
|
| 35 | + //๋ฆฌํดํ์
์ด int๋๊น 0๋ฒ์งธ ์ถ๋ ฅ |
| 36 | + return alist.get(0); |
| 37 | + */ |
| 38 | + |
| 39 | + //sol2 |
| 40 | + if (a.length == 1) { |
| 41 | + return a[0]; |
| 42 | + } |
| 43 | + |
| 44 | + //๋ฐฐ์ด a ์ ๋ ฌํ๊ธฐ |
| 45 | + Arrays.sort(a); |
| 46 | + |
| 47 | + int ans = 0; |
| 48 | + for (int i = 1; i < a.length; i++) { |
| 49 | + //์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ๊ธฐ๋๋ฌธ์ ์์ ๋ชจ๋ ์ซ์๊ฐ 2๊ฐ์ฉ ์กด์ฌํ๋ค๋ฉด ๋ต์ ์ ์ผ ๋ง์ง๋ง ์์์ด๋ค. |
| 50 | + if (i == a.length - 1) { |
| 51 | + ans = a[i]; |
| 52 | + //์ค๋ฅธ์ฐจ์ ์ ๋ ฌ์ ํ๊ธฐ๋๋ฌธ์ ํ์ฌ์์์ ์ผ์ชฝ ์์์ ์ค๋ฅธ์ชฝ ์์๊ฐ ํ์ฌ์์์ ๋ค๋ฅด๋ค๋ฉด ๊ทธ ๊ฐ์ด ๋ต์ด๋ค. |
| 53 | + } else if ((a[i] != a[i - 1]) && (a[i] != a[i + 1])) { |
| 54 | + ans = a[i]; |
| 55 | + break; |
| 56 | + } |
| 57 | + } |
| 58 | + return ans; |
| 59 | + } |
| 60 | + |
| 61 | + public static void main(String[] args) { |
| 62 | + System.out.println(lonelyinteger(new int[]{1,2,3,4,3,2,1})+", ans: 4"); |
| 63 | +// System.out.println(lonelyinteger(new int[]{1})+", ans: 1"); |
| 64 | +// System.out.println(lonelyinteger(new int[]{1,1,2})+", ans: 2"); |
| 65 | +// System.out.println(lonelyinteger(new int[]{0, 0, 1, 2, 1}) + ", ans: 2"); |
| 66 | +// System.out.println(lonelyinteger( |
| 67 | +// new int[]{59, 88, 14, 8, 85, 1, 94, 74, 57, 96, 39, 2, 47, 43, 35, 17, 53, 52, 92, 31, |
| 68 | +// 99, 48, 94, 30, 92, 60, 32, 45, 88, 13, 39, 50, 22, 65, 89, 46, 65, 76, 57, 67, 99, 35, |
| 69 | +// 76, 46, 85, 82, 45, 62, 53, 80, 74, 22, |
| 70 | +// 31, 52, 82, 13, 41, 96, 2, 1, 80, 62, 4, 20, 50, 89, 59, 67, 60, 8, 41, 14, 47, 48, 17, |
| 71 | +// 4, 43, 30, 32}) + ", ans: 20"); |
| 72 | + } |
| 73 | +} |
0 commit comments