โญ๏ธ 1157 ๋จ์ด๊ณต๋ถ
(์๋ฐ8 276ms, ์๋ฐ11 392ms)
์ ๊ทผ์ ์๋ชปํ๋์ง..
๋๋ ์ด ๋ฌธ์ ๊ฐ ์ ์ผ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ์ด๋ ค์ ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ณผ ์๊ฐ๋ ์ ์ผ ์ฒ์ฐธ..
๊ทธ๋ฅ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ๋ฌด์์ธ์ง ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๋ฉด ๋๋ค.
โ๏ธ ๋ฌธ์ ํ์ด
set์ผ๋ก ๋ฌธ์์ด์ ์ค๋ณต์ ์ ๊ฑฐํด์
์ด ๋จ์ด๋ค๋ง for๋ฌธ์ ๋๋ฉด์ ๋น๊ตํด์ผ๊ฒ ๋ค. ์ถ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ช๋ฒ ๋์ค๋์ง countํ๋ ๋ฐฐ์ด ๋ง๋ค์ด์ ๊ฑฐ๊ธฐ ๋ด๊ณ ,
์ ์ผ ํฐ ์ธ๋ฑ์ค์ ๋จ์ด๋ง ์ถ๋ ฅํ๋๋กํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๋๊ฐ์ด ์ต๋๊ฐ์ ๊ฐ์ง๋ ๋จ์ด๊ฐ ์๋ ๊ฒฝ์ฐ์๋
์ด๊ฒ์ ์ฒดํฌํด์ ?๋ฅผ ์ถ๋ ฅํ๋๋ก ํ์๋ค.
![]() |
![]() |
![]() |
๋ด๊ฐ ์ง ์ฝ๋๋ ์ด๋ฌํ๋ค.
์ ์ผ ์๊ฐ ๊ฐ์ฅ ๋ง์ด ๋์จ ๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ด๊ณ ,
๊ฐ์ด๋ฐ๊ฐ ๋ฌธ์๊ฐ ๋ช๋ฒ ๋์๋์ง countํด์ ๋ด์ ๋ฐฐ์ด
์ ์ผ ์๋๊ฐ ๊ทธ count๊ฐ์ ๋จ์ด์ด๋ค.
์ฌ์ค ์๊ฐ ๋จ์ถ์ฉ์ผ๋ก set์ ์ฌ์ฉํ๋ค.
๊ทผ๋ฐ ์๊ฐ์ด ๋ ๊ฑธ๋ ธ๋ค.. ์๋ฌด๋๋ ์ด๋ ๊ฒ ์ ๊ทผํ๋๊ฒ ์๋๋ฏ ํ๋ค..
ํ์ด์ฌ์ set์ผ๋ก ์ซ์ซ ํ์์๋๋ฐ,
์๋ฐ๋ ๊ฝค ์ด๋ ต๊ตฌ๋.. ๋ค์ ํ์ด์ ์ ๋ก๋ ํ๋๋ก ํ๊ฒ ๋ค.
์ฉ์ฉ.
โ๏ธ ์ต์ข ์ฝ๋
import java.io.*;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String upWord = br.readLine().toUpperCase();
char[] upWordArray = upWord.toCharArray();
int c = 0;
// set์ผ๋ก ๋ฐ๊พธ๊ณ , ๊ทธ๊ฒ๋ง ํ์ธํ๊ธฐ
Set<Character> set = new HashSet<>();
for (Character word : upWordArray) {
set.add(word);
}
Character[] set2Array = set.toArray(new Character[set.size()]);
// set ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ๊ธฐ - set์ ์์๊ฐ ์๋ ์ปฌ๋ ์
์ด๋น์ฉ
int[] counts = new int[set.size()];
for ( int i = 0; i < set.size(); i++ ) {
for ( int j = 0; j < upWordArray.length; j++ ) {
if (upWordArray[j] == set2Array[i]) {
counts[i] += 1;
}
}
}
int max = Integer.MIN_VALUE;
int index = 0;
boolean doublemax = false;
for ( int i = 0; i < counts.length; i++ ) {
if ( counts[i] > max ) {
max = counts[i];
index = i;
doublemax = false;
} else if ( counts[i] == max ) {
doublemax = true;
}
}
if ( doublemax ) {
System.out.println("?");
} else {
System.out.println(set2Array[index]);
}
}
}