문자열(10)
-
크로스워드 퍼즐 쳐다보기 실버2 (백준, 문자열)
import sys input = sys.stdin.readline n, m = map(int,input().split()) puzzle = [input().rstrip() for _ in range(n)] ans = [] for i in range(m): sig = '' for j in range(n): sig+=puzzle[j][i] temp = sig.split('#') for x in temp: if len(x) > 1: ans.append(x) for i in puzzle: temp = i.split('#') for j in temp: if len(j) > 1: ans.append(j) ans.sort() print(ans[0])
2023.02.09 -
추월 실버1 (백준, 문자열)
import sys n = int(sys.stdin.readline().rstrip()) cars = {} for idx in range(n): cars[sys.stdin.readline().rstrip()] = idx # 터널에 들어간 순서대로 차별 인덱스를 부여한다. 이름을 통해 순서를 알 수 있다. car_out = [] for idx in range(n): car = sys.stdin.readline().rstrip() car_idx = cars.get(car) car_out.append(car_idx) # 나온 순서대로 car_out에 그 차가 터널에 들어온 순서를 담는다. cnt = 0 for i in range(n): for j in range(i, n): if car_out[i] > car..
2023.02.01 -
비밀번호 발음하기 실버5 (백준, 문자열)
import sys vowel = {'a', 'e', 'i', 'o', 'u'} while (1): test = sys.stdin.readline().rstrip() if test == 'end': break pw = list(test) v_flag = 0 # 모음 존재하는지 확인 v_cnt = 0 # 모음 3개 연속인지 확인 c_cnt = 0 # 자음 3개 연속인지 확인 err = 0 # 같은 문자 연속 2개 or 자음/모음 연속 3개인 경우 1 for i in range(len(pw)): if i > 0: if pw[i] == pw[i - 1]: if pw[i] != 'e' and pw[i] != 'o': err = 1 break if pw[i] in vowel: v_flag = 1 v_cnt += ..
2023.01.31 -
가희와 키워드 실버2 (백준, 문자열)
import sys n, m = map(int, input().split()) memo = {} for _ in range(n): voca = sys.stdin.readline().strip() memo[voca] = 1 for _ in range(m): text = sys.stdin.readline().strip() text = text.split(',') for i in text: if i in memo and memo[i] == 1: memo[i] = 0 n-=1 print(n)
2023.01.30 -
한국이 그리울 땐 서버에 접속하지 실버3 (백준, 문자열)
import sys input = sys.stdin.readline n = int(input()) sig = input() sig = sig[:-1] sig = sig.split('*') s, e = len(sig[0]), len(sig[1]) for _ in range(n): name = list(input()) name = name[:-1] f = ''.join(name[:s]) b = ''.join(name[len(name)-e:]) if sig[0] == f and b == sig[1] and len(name) >= s+e: print('DA') else: print('NE') 간단한게 풀 수 있는 문자열 문제였다.
2023.01.28 -
타노스 실버 3 (백준, 문자열)
def solution() : n = list(input()) zero = n.count('0') // 2 one = n.count('1') // 2 for _ in range(zero) : n.pop(-(n[::-1].index('0'))-1) for _ in range(one) : n.pop(n.index('1')) print(''.join(n)) solution() 그냥 값을 삭제한 후 sort하거나 지정된 수 만큼 값을 배열에 넣는 방식은 25점을 받는다. 리스트로 받은 값에서 0은 뒤에서부터 1은 앞에서부터 삭제해줘야 하는데 뒤에서 삭제하는 테크닉을 배울 수 있었다. n.pop(-(n[::-1].index('0'))-1) 유용하게 쓸 수 있을 거 같다. 기억하자.
2023.01.27