1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
S = input().lower()
L = []
for i in range(97, 97+26):
L.append(S.count(chr(i)))#a갯수, b갯수, c갯수..., z갯수
A = max(L) #각 알파벳 갯수중에 최댓값
if L.count(A) >= 2: #해당 최댓값이 중복인 경우
print("?")
else:
print(chr(L.index(A) + 97).upper())
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 �
www.acmicpc.net
numbers = input().split()
number1 = int(''.join(reversed(numbers[0])))
number2 = int(''.join(reversed(numbers[1])))
print(max(number1, number2))
print(max([int(i[::-1]) for i in input().split()]))
처음에는 reversed함수를 이용해서 뒤집고, join으로 붙이고 int로 변환했다.
다른 답변들을 보니 한줄로 만들어버렸길래 올려본다.
문자열 받은 것을 뒤집고, int로 변경 후 바로 [] 안에 넣어 배열로 만들어 버렸다. ㅇㅁㅇ
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
cro_c = ["c=","c-","dz=","d-","lj","nj","s=","z="]
s = input()
for c in cro_c:
s = s.replace(c, "*")
print(len(s))
처음에는 for문으로 문자열 하나씩 보면서 크로아티아 치환문자가 발견되면 pop으로 빼고 남은 것들의 len을 더해야겠다고 생각했다. 그런데 다른 코드들 검색해보니 발견되면 아에 *로 치환해서 빼고 나중에 한번에 len을 계산하는게 보편적이고 더 효율적인 방법인 것 같다.
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때�
www.acmicpc.net
처음에는 문제를 이해하지 못해서 Happy new year는 그룹단어가 총 5개인데 왜 3개인가 의문이었다.
이 문제는 Happy, New, year 라는 입력들이 왔을 때 그룹단어인 입력이 몇개인가이다. 따라서 답은 0~3개일 것이고, 모두 그룹단어가 아닌 문자가 없으므로 답이 3인 것이다.
def check_group(word) :
c_list = []
for i, c in enumerate(word) :
if c not in c_list :
c_list.append(c)
else :#이미 전에 언급된 문자에 대해
if (i!= 0) & (word[i] != word[i-1]) :
return 0
return 1
n = int(input())
s = []
for _ in range(n) :
s.append(input())
cnt = 0
for w in s :
cnt += check_group(w)
print(cnt)
처음 생각한 방법은 문자를 하나씩 가져오면서 그룹인지 아닌지 판별하는 방식이다.
result = 0
for i in range(int(input())):
word = input()
#print("#", sorted(word, key=word.find))
if list(word) == sorted(word, key=word.find):
result += 1
print(result)
위 코드는 다른사람들의 코드를 보고 배운 방식이다.
받아온 word를 순서대로 정리해서 원래 문자와 동일하면 그룹문자로 취급하는 것이다.
예를 들어 Happya라고 입력하여 위처럼 정렬하면 [H우선 정렬-a우선정렬-p우선정렬-y우선정렬..]순으로 되어
Haappy가 되고 이는 원래 문자인 Happya와 다르므로 그룹문자가 아닌 것을 알 수 있다.
'python code' 카테고리의 다른 글
너비우선탐색문제 (0) | 2020.09.11 |
---|---|
The gift(그리디 알고리즘) (0) | 2020.09.10 |
Chuck Norris 문제풀이 (0) | 2020.09.09 |