본문 바로가기

Algorithm/String6

[백준] 3059번 등장하지 않는 문자의 합 for i in range(int(input())): alpha = [1] * 26 ans = 0 txt = input() for j in txt: alpha[ord(j) - 65] = 0 for num, txt in enumerate(alpha): if txt == 1: ans += num + 65 print(ans) 2021. 2. 8.
[백준] 9935번 문자열 폭발 import sys txtVal = sys.stdin.readline().strip() bomb = sys.stdin.readline().strip() lastChar = bomb[-1] lengthOfBomb = len(bomb) stack = [] for char in txtVal: stack.append(char) if char == lastChar and ''.join(stack[-lengthOfBomb:]) == bomb: del stack[-lengthOfBomb:] ans = ''.join(stack) if ans == "": print("FRULA") else: print(ans) 2021. 2. 8.
[백준] 1764번 듣보잡 set을 사용하면 쉽게 풀 수 있는 문제 그리고 set은 add해야한다 그리고 & 연산이 가능하다 import sys n, m = map(int, input().split()) aList = set() bList = set() for i in range(n): aList.add(sys.stdin.readline().strip()) for i in range(m): bList.add(sys.stdin.readline().strip()) ans = sorted(list(aList & bList)) print(len(ans)) for i in ans: print(i) 2021. 2. 8.
[백준] 1213번 팰린드롬 만들기 처음에 접근 했던 방식이 진짜 굉장히 구현자체는 쉬운데... 치명적인 단점이 있어서.. 아 음.. 다시 도전을 해볼까 싶기도 하고.. 아무튼 다른 블로그를 참고한 해답 다시 도전 해봐야겠다 ㅋㅋㅋㅋㅋ def palindrome(str): oddCount = 0 oddChar = '' strAns = '' ans = [0] * 26 for i in str: ans[ord(i) - 65] += 1 for i in range(26): if ans[i] % 2 == 1: oddCount += 1 oddChar = chr(i + 65) if oddCount >= 2: return "I'm Sorry Hansoo" strAns += chr(i + 65) * (ans[i] // 2) return strAns + od.. 2021. 1. 8.