주어진 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 알아보는 문제 하나하나 확인해봐야하는 줄 알았는데, 미리 크로아티아 알파벳에 해당하는 문자열을 저장해놓고 input으로 받은 문자열 안에 포함되어있는지 확인해보면 되는 문제였다 X = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] # 크로아티아 알파벳 저장 T = input() for i in X: # 크로아티아 알파벳에 해당하는 문자열이 나오면 T = T.replace(i, '0') # 기존 문자열 -> 문자 한 개로 교체 print(len(T))
같은 숫자에 해당된 글자끼리 리스트를 만들고 그 리스트에 해당되면 time에 시간을 추가하는 방식으로 해결했다. import sys T = list(map(str, sys.stdin.readline().rstrip())) # input값 리스트로 저장 X = [[], ['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ['J', 'K', 'L'], ['M', 'N', 'O'], ['P', 'Q', 'R', 'S'], ['T', 'U', 'V'], ['W', 'X', 'Y', 'Z']] time = 0 # 시간 초기화 for i in T: if i in X[1]: time += 3 elif i in X[2]: time += 4 elif i in X[3]: time +..
서로 연결되었는지 확인하기 위해 각 번호의 컴퓨터에 연결되어있는 컴퓨터를 나타내는 리스트를 만든다 import sys N = int(sys.stdin.readline()) M = int(sys.stdin.readline()) # 컴퓨터 각각에 연결되어 있는 컴퓨터 번호의 리스트 adj = [[] for _ in range(N + 1)] # 연결되어있는 정보가 주어지면 각각의 컴퓨터 번호의 리스트에 저장 for i in range(M): a, b = map(int, sys.stdin.readline().split()) adj[a].append(b) adj[b].append(a) for i in range(N+1): adj[i].sort() visited = [0 for _ in range(N + 1)] s..
회전하는 큐 왼쪽으로 돌릴 때는 index가 0인 원소를 뒤에 넣고 앞을 삭제, 오른쪽으로 돌릴 때는 index가 -1인 원소를 앞에 넣고 뒤를 삭제하면 된다 import sys N, M = map(int, sys.stdin.readline().split()) K = list(map(int, sys.stdin.readline().split())) A = [i for i in range(1, N + 1)] cnt = 0 for i in range(M): A_len = len(A) A_index = A.index(K[i]) if A_index < A_len - A_index: while True: if A[0] == K[i] : del A[0] break else : A.append(A[0]) del A[0..
이렇게 보면, 호수 YYXX 중 뒷부분 XX는 N을 H로 나눈 몫과 같다. (나누어떨어질 때만 빼고) 앞부분 YY는 N을 H로 나눈 나머지와 같다. (나누어떨어질 때만 빼고) 나누어떨어질 때를 예외로 두고 YY와 XX를 구하면 된다. import sys T = int(sys.stdin.readline()) H, W, N = 0, 0, 0 for i in range(T): H, W, N = map(int, sys.stdin.readline().split()) # N이 H로 나누어떨어지지 않을 때 if N % H != 0: X = N//H + 1 if len(str(X)) == 1: # X가 한 자리수일때 앞에 0을 더해줌 X = '0' + str(X) Y = N % H # N이 H로 나누어떨어질 때 els..
시간초과 났다가 고친 문제,, 첫 리스트를 set으로 바꿔주면 된다. (어차피 중복도 없으니까) import sys N = int(sys.stdin.readline()) A = set(map(int, sys.stdin.readline().split())) # list로 하면 시간초과 남 M = int(sys.stdin.readline()) B = list(map(int, sys.stdin.readline().split())) for i in B: if i in A: print(1) else: print(0)
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.