๐ ํ์ ์๊ณ ๋ฆฌ์ฆ
- ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ํด๋ฅผ ๊ตฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ทผ์์์ ๋ฐฉ๋ฒ
- ์ฌ๋ฌ ๊ฒฝ์ฐ ์ค ํ๋๋ฅผ ์ ํํ ๋๋ง๋ค ๊ทธ ์๊ฐ์ ์ต์ ์ด๋ผ ์๊ฐ๋๋ ๊ฒ์ ์ ํํด ๋๊ฐ๋ ๋ฐฉ์
- ์ต์ข
์ ์ผ๋ก ๋ต์ ๋๋ฌ
- ๊ฐ ์ ํ ์์ ์์ ์ด๋ฃจ์ด์ง๋ ๊ฒฐ์ ์ ์ง์ญ์ ์ผ๋ก๋ ์ต์ ์ด์ง๋ง, ๊ทธ ์ ํ๋ค์ ๊ณ์ ์์งํ์ฌ ๊ตฌํ ์ต์ข
์ ์ธ ํด๋ต์ด ์ต์ ์ด๋ผ๋ ๋ณด์ฅ ์์
๐ฌ ๋ํ์ ์ธ ๋ฌธ์
โพ ํ์์ค ๋ฐฐ์ ํ๊ธฐ
์ฌ์ฉ ๊ฐ๋ฅํ ํ์์ค์ ํ๋๋ง ์กด์ฌํ๊ณ ๋ค์์ ํ์๊ฐ ์ ์ฒญ๋ ์ํ์ด๋ค. ํ์๋ ์์ ์๊ฐ๊ณผ ์ข
๋ฃ ์๊ฐ์ด ์์ผ๋ฉฐ, ์๊ฐ์ด ๊ฒน์น๋ ํ์๋ ๋์์ ์ด๋ฆด ์ ์๋ค. ์ต๋ ๋ช ๊ฐ์ ํ์๋ฅผ ๋ฐฐ์ ํ ์ ์์๊น?
- ํ์ ๊ฐ์ :
10
- ์์, ์ข
๋ฃ ์๊ฐ
1 4 1 6 6 10 5 7 3 8 5 9 3 5 8 11 2 13 12 14
ํ์ ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ
- ํ์ ๋ชฉ๋ก์์ ๊ฐ์ฅ ์ผ์ฐ ๋๋๋ ํ์
a
์ ํ
a
์ ๊ฒน์น๋ ๋ชจ๋ ํ์๋ฅผ ํ์ ๋ชฉ๋ก์์ ์ญ์
- ํ์ ๋ชฉ๋ก์ ํ์๊ฐ ๋ค ์์ด์ง ๋๊น์ง 1๋ฒ ๋ถํฐ ๋ฐ๋ณต
์ ๋น์ฑ ์ฆ๋ช
- ํ์์ ์ ํ์ด ํญ์ ์ต์ ํด๋ก ๊ฐ๋ ๊ธธ ์ค ํ๋
- ์ฆ, ๊ฐ์ฅ ์ข
๋ฃ ์๊ฐ์ด ๋น ๋ฅธ ํ์๋ฅผ ํฌํจํ๋ ์ต์ ํด๊ฐ ๋ฐ๋์ ์กด์ฌ
๐ป ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
static class Time {
int start, end;
public Time(int start, int end) {
this.start = start;
this.end = end;
}
}
static int lastEnd, cnt;
public static void main(String[] args) {
Time[] mittings = {
new Time(1, 4),
new Time(1, 6),
new Time(6, 10),
new Time(5, 7),
new Time(3, 8),
new Time(5, 9),
new Time(7, 9),
};
Arrays.sort(mittings, (m1, m2) -> m1.end - m2.end);
lastEnd = 0;
cnt = 0;
Arrays.stream(mittings).forEach(m -> {
if(m.start >= lastEnd) {
System.out.print(m.start+"-"+m.end+" ");
lastEnd = m.end;
cnt++;
}
});
System.out.println();
System.out.println(cnt);
}
โพ Baby-gin ๋ฌธ์
0~9์ ์ซ์ ์นด๋๊ฐ ์๋ค. run, triple ์กฐ์ฌํด์ baby-gin์ด ๊ฐ๋ฅํ์ง ํ์ธํด๋ณด์.
- run : 3๊ฐ ์ฐ์์ผ๋ก ์ฆ๊ฐํ๋ ์ซ์ ์นด๋๊ฐ ์๋ ๊ฒฝ์ฐ
- triple : ๋์ผํ ์ซ์ ์นด๋ 3๊ฐ๊ฐ ์๋ ๊ฒฝ์ฐ
- baby-gin : run+triple ์ด ์๋ ๊ฒฝ์ฐ
ํ์ ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ
- ์ซ์ ์นด๋์ ๊ฐ์๊ฐ ๋ด๊ธด count ๋ฐฐ์ด ์์ฑ
- triple ๋จผ์ ํ๋จํ ํ run ํ๋จ
๐ป ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
public static void main(String[] args) {
int[] card = {3, 3, 3, 2, 3, 4};
int[] cnt = new int[10];
Arrays.stream(card).forEach(c -> cnt[c]++);
int tripple = 0, run = 0;
for (int i = 0; i < 10; i++) {
if(cnt[i] >= 3) {
cnt[i]-= 3;
tripple++;
}
else if(cnt[i] > 0 && cnt[i+1] > 0 && cnt[i+2] > 0) {
cnt[i]--;
cnt[i+1]--;
cnt[i+2]--;
run++;
}
}
if((tripple+run) / 2 > 0)
System.out.println("๊ฐ๋ฅ");
else System.out.println("๋ถ๊ฐ๋ฅ");
}