반응형
1. 문제
https://www.acmicpc.net/problem/16139
2. 풀이
시간초과 나면 print를 sys.stdout.write()로 바꾸기
3. 구현
50점:
import sys
# sys.stdin=open('input.txt')
s = sys.stdin.readline()
n = int(sys.stdin.readline())
lis=[]
for c in 'abcdefghijklmnopqrstuvwxyz':
cnt=0
tmp=[]
for item in str(s):
if item==c:
cnt+=1
tmp.append(cnt)
lis.append(tmp)
while n:
n-=1
tmp = sys.stdin.readline().split()
c, start, end = tmp[0], int(tmp[1]), int(tmp[2])
tmp_lis = lis[ord(tmp[0])-97]
answer=tmp_lis[end]-tmp_lis[start]
if s[start]==c:
answer+=1
print(answer)
100점:
import sys
#sys.stdin=open('input.txt')
s = sys.stdin.readline()
n = int(sys.stdin.readline())
lis=[]
# @profile
def prep():
for c in 'abcdefghijklmnopqrstuvwxyz':
cnt=0
tmp=[]
for item in str(s):
if item==c:
cnt+=1
tmp.append(cnt)
lis.append(tmp)
# @profile
def main():
global n
while n:
n-=1
tmp = sys.stdin.readline().split()
c, start, end = tmp[0], int(tmp[1]), int(tmp[2])
tmp_lis = lis[ord(tmp[0])-97]
answer=tmp_lis[end]-tmp_lis[start]
if s[start]==c:
answer+=1
sys.stdout.write(str(answer)+'\n')
# print(answer)
if __name__ == "__main__":
prep()
main()
반응형
'PS > 백준' 카테고리의 다른 글
[테스트케이스추가] 백준 1715번: 카드 정렬하기 (0) | 2021.08.06 |
---|---|
[테스트케이스 추가] 백준 14503번: 로봇 청소기 , python 파이썬 (1) | 2021.08.06 |
백준 10211번: Maximum Subarray python 파이 (0) | 2021.08.06 |
백준 1991번 트리순회 python 파이썬 (0) | 2021.08.06 |
백준 11725번: 트리의 부모찾기 python 파이썬 (0) | 2021.08.06 |
댓글