1157๋ฒ: ๋จ์ด ๊ณต๋ถ (acmicpc.net)
1. ์๊ฐ ์ด๊ณผํ ๋ด ๋ต
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// ์
๋ ฅ ๊ฐ ๋ฐ๊ธฐ
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int maxCount = 0;
char maxChar = '?';
for (int i = 0; i < s.length(); i++) {
int count = 0;
char c = Character.toUpperCase(s.charAt(i));
for (int j = 0; j < s.length(); j++) {
if(c == Character.toUpperCase(s.charAt(j))){
count++;
}
}
if(maxCount< count){
maxCount = count;
maxChar = c;
} else if (maxCount == count) {
if(c != maxChar){
maxChar='?';
break;
}
}
}
System.out.println(maxChar);
}
}
ํ ์คํธ ์ผ์ด์ค์ ๋ํ ์ ๋ต์ ์ ๋์๋๋ฐ, ์๊พธ ์๊ฐ ์ด๊ณผ๊ฐ ๋ด๋ค. ๋๋ ๊ทธ ์ด์ ๊ฐ, ๋ด๊ฐ Scanner๋ฅผ ์จ์๋ ์๋๋ฉด ์ปฌ๋์ ํ๋ ์ ์ํฌ๋ฅผ ์จ์ ์ธ ์ค ์๊ณ , ๊ทธ๊ฒ๋ค์ ๋ฐ๊ฟจ๋ค.
๊ทธ๋๋ ์๋์ ๊ทธ ์ดํ์๋ ์ฝ๋ ์๊ฐ ๋๋ฌด ๊ธธ์ด์ ๊ทธ๋ฐ ์ค ์๊ณ , ๋ฐฐ์ด์ ์ฐ์ง ์๊ณ ํ ์ ์๋๋ก ์ฝ๋ ์๋ ์ค์๋ค.
๊ทธ๋๋ ์๋์ด์ ๊ตฌ๊ธ๋ง ํด์ ๋ต์ ๋ดค๋ค.
๋ต์ ๋ฐ๋ผ์น์ง ์์๋ค. ๋ต์ ๊ตฌ๋ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ์ ๋ด ํ์ด๊ฐ ์๊ฐ์ด๊ณผ์ ๊ณ์ ๊ฑธ๋ ธ๋์ง ๋ฐ๋ก ์ ์ ์์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ๋ ๋ง ๊ฐ์ ธ์์ ๋ค์ ์ ์ด ๋ณด์๋ค.
2. ๋ฌธ์ ์ง์ง ํด๋ต (์ ๋ต ๋ด)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
// ์ํ๋ฒณ A~Z๊น์ง ๊ฐ ์ํ๋ฒณ์ด ๋ช ๊ฐ ๋์๋ ์นด์ดํธ ํ๊ธฐ ์ํจ.
int [] arr = new int[26];
// ์
๋ ฅ ๊ฐ ๋ฐ๊ธฐ
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
// index๊ฐ ์ํ๋ฒณ์ ์์, ์์ ๊ฐ์ด ํด๋น ์ํ๋ฒณ์ด ๋์จ ํ์
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i)>=65 && s.charAt(i)<=90){
arr[s.charAt(i)-65]++;
}else{
arr[s.charAt(i)-97]++;
}
}
// ๋ญ๊ฐ ์ ์ผ ํฐ ์ง ํ์ธ
int max = 0;
char maxChar = '?';
for (int i = 0; i < 26; i++) {
if(arr[i] > max){
max = arr[i];
maxChar = (char) (i+65);
} else if (arr[i] == max) {
maxChar='?';
}
}
System.out.println(maxChar);
}
}
3. ๋ด๊ฐ ๋ชป ํ์๋ ์ด์ & ๋ฐฐ์ด ์
๋ด ํด๋ต์ด ์๊พธ ์๊ฐ ์ด๊ณผ๊ฐ ๋๊ณ ๋๋ด ๋ชป ํ์๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ด ํ์ด๋ ์์ ํ๋ํ๋๋ฅผ ๋ฐฐ์ด ์ ์ฒด๋ฅผ ์ํ ์ํจ๋ค. ์์ ํ ๊ฐ์ ๋ํ ๊ฒ์ฌ๋ก ๋ฐฐ์ด ์ ์ฒด๋ฅผ ๋ฌด์กฐ๊ฑด ๋ค ๋์์ผ ํ๋ BigO๋ก ๋ดค์ ๋, ๋ฐฐ์ด ๊ธธ์ด๊ฐ 10000์ด๊ณ ํ ๋ฒ ๋ ๋ 10000์ด๊ฐ ๋ ๋ค๊ณ ํ์ ๋,
10000 * 10000์ด ์ด ๋์ด๋ฒ๋ฆฐ๋ค. ์ ๋ง ๋นํจ์จ์ ์ธ ํ์ด์๋ค.
์ด์ ๋ฌ๋ฆฌ, ํด๋ต์ ๋ณด๋ฉด, ๋จผ์ 26์นธ ์ง๋ฆฌ ๋น ๋ฐฐ์ด์ ๋ง๋๋๋ฐ ์ฌ๊ธฐ index๊ฐ A-Z๊น์ง์ ์ํ๋ฒณ์ ์์๋๋ก ์๋ฏธํ๊ณ , ๊ฐ์ ํด๋น ์ํ๋ฒณ์ด ๋์จ ์์์ด๋ค.
์์คํค ์ฝ๋๋ฅผ ๋ณด๋ฉด ๋๋ฌธ์๋ 65~90, ์๋ฌธ์๋ 97~122๊น์ง์ด๋ค.
์ด๋ฅผ ์ด์ฉํด ๋๋ฌธ์๋ฅผ ๋ง๋๋ฉด -65ํด์ ๋์จ ๊ฐ๊ณผ ๊ฐ์ ์ธ๋ฑ์ค์ ๊ฐ์ 1 ์ฌ๋ ค์ฃผ๊ณ , ์๋ฌธ์๋ ๋ฌธ์ -97ํ ๊ฐ๊ณผ ๊ฐ์ ์ธ๋ฑ์ค์ ๊ฐ์ +1 ์ฌ๋ ค์ฃผ์๋ค.
์ด๋ฌ๋ฉด ํ ๋ฒ์ ์ํ๋ก ๋ชจ๋ ๋ฌธ์์ ๋์จ ํ์๋ฅผ ์ฒดํฌํ ์ ์๋ค.
๋ด ํ์ด์๊ณผ ๋น๊ตํ์ ๋ ์๋ฑํ ์ฐจ์ด์ด๋ค.
๋๋ ์๊ฐ์ ์ค์ด๋ ค๋ฉด, ๊ณ ๋ฑ ๊ฐ๋ ์ ๋ ์ฐ๋ฉด ๋๋ค๊ณ ๋ง ์๊ฐํ๋ค.
๊ทผ๋ฐ ๊ทธ๊ฒ ์๋๋ผ ๋ด ์ฝ๋๊ฐ ๋์๊ฐ๋ ์๋ฆฌ์ ๋ํด์ ์๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.
๊ณ์ ๋ต์ด ๋์ค๋ ๋ก์ง์ธ๋ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋์จ๋ค๊ณ ์ต์ธํด๋ง ํ๋๋ฐ, ์ด๋ด ๋๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํ๊ฑฐ๋ ์ ์ ๋ด๋ ค๋๊ณ ์๊ฐํ๋ ์๊ฐ์ ๊ฐ์ ธ์ผ๊ฒ ๋ค.
๋ค์๋ถํฐ๋ ๋ต์ ๋๋๋ก์ด๋ฉด ์ฐพ์ง ๋ง๊ณ , ๋ฌตํ๋์!