-
[99클럽] stack 기초, B2776알고리즘/코딩테스트 문제 정리 2025. 1. 13. 20:20
코딩테스트
🌱 문제 풀기 전 나의 생각
1. stack을 먼저 떠올리게 된 문제이다. 이전에 stack을 해결할 때 간단하게 풀 수 있는 부분에 대해서는 list보다는 int를 이용해서 + -를 통해서 해결하면 더 쉽게 해결이 된다고 생각되어 이렇게 구현하고자 하였다.
소요 시간: 10분
🌳 파이썬 풀이 코드
def solution(s): answer = True count = 0 s = s.lower() for i in s: if i == 'p': count += 1 elif i == 'y': count -= 1 continue return count == 0
- JS에서는 toLowerCase() 메서드를 활용하였었는데 python에서는 무슨 메서드인지 까먹었어서 이 부분에서 기억을 잘 해야겠다.
백준 B2776
🌱 문제 풀기 전 나의 생각
1. 하나씩 조회를 하면서 찾으면 리소스가 많이들 것 같은데 이것을 개선할 수 있는 방법이 있는지 생각해보다가 잘 떠오르지 않아서 일단 구현을 먼저하고 나중에 다른 사람들의 답을 찾아보고자 하였음.
2. 입출력 부분에서 백준에서 어떻게 받아야하는지 까먹어서 다시 찾아봐야겠음.
3. 일단 받는 배열이 2개일텐데 하나는 중복을 제거해야하니깐 set()을 써보고 in을 통해서 간단하게 한 번 구현해보고자 하였음소요 시간: 30분
🌳 파이썬 풀이 코드
# 이전 코드 import sys test_n = int(input()) a, b, c, d = [sys.stdin.readline().split('\n')[0] for _ in range(test_n * 4)] def solution(a, b, c, d): a, b, c, d = int(a), set(map(int, b.split(" "))), int(c), list(map(int, d.split(" "))) print(a, b, c, d) for i in d: if i in b: print(1) else: print(0) solution(a, b, c, d) # 개선된 코드 import sys test_n = int(input()) # 입력값 읽기 for _ in range(test_n): a = int(sys.stdin.readline().strip()) b = set(map(int, sys.stdin.readline().strip().split())) c = int(sys.stdin.readline().strip()) d = list(map(int, sys.stdin.readline().strip().split())) def solution(a, b, c, d): # a는 사용되지 않음 (단순 테스트 케이스 수) for i in d: if i in b: print(1) else: print(0) solution(a, b, c, d)
- 처음에 입출력 받는 방식이 RunTime Error를 내길래 뭐가 문제일까 찾아보니 split("\n")[0] 여기 부분이 문제가 된다고 나왔다. 그래서 수정해보았다 - ChatGPT
- 일단 읽을 때 예상한 입력 값의 개수와 실제 입력 값이 다를 경우 런타임 에러가 발생한다는데 정확히 왜 발생하는지는 모르겠다.
- 일단 한꺼번에 받아서 하는 게 아니라 각각 받아야한다는 것만 알겠다.
'알고리즘 > 코딩테스트 문제 정리' 카테고리의 다른 글
[99클럽] 이분탐색 (0) 2025.01.14 [코딩 테스트 합격자 되기] deque 사용하기 (0) 2025.01.13 [코딩테스트 합격자 되기] queue 활용 (0) 2025.01.10 [코딩 테스트 합격자 되기] stack의 심화 (내 기준) (0) 2025.01.08 [코딩 테스트 합격자 되기] 괄호 문제 알고보니 Lv.2 (0) 2025.01.06