이 문제는 find() 함수를 이용하면 편하다.find() 함수는 단어가 가장 처음 나온 위치를 반환한다. 만약 단어가 존재하지 않을 경우 -1을 반환한다.find() 함수를 쉽게 이용하기 위해 알파벳들을 ord() 함수를 이용해 아스키코드로 변환하여 사용한다.문제풀이S = input() for Rpt in range(0, 26): print(str(S.find(chr(ord('a') + Rpt))) + " ",end="")
split() 함수를 이용하여 X를 기준으로 문자열을 자르고 반복문을 활용하여 O의 개수를 더하는 형식으로 답을 구했다.문제풀이N = int(input()) add = 0 for Rpt in range(0, N): Str = input().split('X') for rpt in range(0, len(Str)): for Rt in range(1, Str[rpt].count('O') + 1): add += Rt print(add) add = 0
isalpha() 함수와 isspace() 함수를 이용하여 문자와 공백을 구분한다.그런 다음 isupper() 함수를 이용해 대소문자를 구별하고 n만큼 밀어서 result 변수에 대입한다.문제풀이def caesar(s, n): result = "" for Rpt in s: if Rpt.isalpha(): if Rpt.isupper(): result += chr((ord(Rpt) - ord("A") + n) % 26 + ord("A")) else: result += chr((ord(Rpt) - ord("a") + n) % 26 + ord("a")) elif Rpt.isspace(): result += " " return result # 실행을 위한 테스트코드입니다. print('s는 "a B z", n은 ..
push 명령은 append() 함수를 이용했다.pop 명령은 try, except 문을 이용하여 오류가 발생했을 경우 -1, 정상이면 그 값을 출력하도록 하였다.size 명령은 len() 함수를 이용했다.empty 명령 같은 경우에도 리스트의 길이가 0이면 1 아닐 경우 0을 출력하는 방식이다.top 명령은 인덱싱을 이용해 출력했다.문제풀이 J = int(input()) stack = [] for a in range(J): N = input().split() if N[0] == "push": stack.append(int(N[1])) elif N[0] == "pop": try: print(stack.pop()) except: print(-1) continue elif N[0] == "size": pri..
문제풀이def toWeirdCase(s): string = '' lst = s.lower().split() for Rpt in range(0,len(lst)): for rpt in range(0,len(lst[Rpt])): if rpt % 2 == 0: string += lst[Rpt][rpt].upper() else: string += lst[Rpt][rpt] if Rpt != len(lst)-1: string += " " return string # 아래는 테스트로 출력해 보기 위한 코드입니다. print("결과 : {}".format(toWeirdCase("try hello world")));
문자열 인덱싱을 이용하여 가장 긴 팰린드롬을 찾아나갔다.문제풀이 def longest_palindrom(s): maxi = 0 for Rpt in range(0,len(s)): for rpt in range(1,len(s)+1-Rpt): normal = s[Rpt:Rpt+rpt] reverse = normal[::-1] if normal == reverse and rpt > maxi: maxi = rpt return maxi # 아래는 테스트로 출력해 보기 위한 코드입니다. print(longest_palindrom("토마토맛토마토")) print(longest_palindrom("baaab"))