주어진 단어에서 제일 많은 알파벳은?
Bash
bash
read str
str="${str^^}"
arr=(0 "")
for x in {A..Z}; do
cnt=${str//[^$x]/}
cnt=${#cnt}
if [ $cnt == 0 ]; then
continue
elif [ "${arr[0]}" -le $cnt ]; then
if [ $arr -lt $cnt ]; then
arr[0]=$cnt
arr[1]=""
fi
arr[1]+=$x
fi
done
test ${#arr[1]} == 1 && echo ${arr[1]} || echo ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
${var^^}
: 모두 대문자로 변환, ${var,,}
: 모두 소문자로 변환
하지만 시간 초과..
Node.js
javascript
const str = require("fs").readFileSync(0).toString().trim().toUpperCase().split("");
const set = str.filter((r, i) => { return str.indexOf(r) == i; });
let arr = [0, ""];
for (let x of set) {
let n = str.filter(s => s == x).length;
if (arr[0] <= n) {
if (arr[0] < n) {
arr[0] = n;
arr[1] = "";
}
arr[1] += x;
}
}
console.log(arr[1].length == 1 ? arr[1] : "?");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Python3
python
a = input().upper()
ls = set(a)
arr = [0, ""]
for x in ls:
n = a.count(x)
if arr[0] <= n:
if arr[0] < n:
arr[0] = n
arr[1] = ""
arr[1] += x
print(arr[1] if len(arr[1])==1 else "?")
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Ruby
ruby
str = gets.chomp.upcase()
set = ("A".."Z").to_a & str.split("")
arr = [0, ""]
for x in set
n = str.count(x)
if arr[0] <= n
if arr[0] < n
arr[0] = n
arr[1] = ""
end
arr[1] += x
end
end
puts arr[1].size == 1 ? arr[1] : "?"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
and 연산을 이용하여 A to Z 중 입력받은 문자열에 존재하는 알파벳만 남기는 방식.
Comments
Not supported comment edit and upvote
You can do it on this page if you want.