728x90
▼ 문제 바로가기 (링크) ▼
https://leetcode.com/problems/count-asterisks/
* 또는 | 을 포함하거나, 포함하지 않는 문자열 s가 주어질 때,
* 의 개수를 반환하는 문제.
| (vertical bars)는 짝수 개로 존재한다.
* (Asterisk) 를 셀 때 bars pair의 사이에 있는 것은 제외한다.
# 첫번째 테스트 케이스만 고려
class Solution:
def countAsterisks(self, s: str) -> int:
s = s.split("|")
del s[1::2]
s = ''.join(s)
cnt = 0
for i in s:
if i == "*":
cnt += 1
return cnt
우선 | 기준으로 분리해 저장한 리스트의 원소를
1번부터 홀수 번째 인덱스만 삭제했다. ( 버티컬 바 사이의 원소)
남은 원소를 str로 join하고 *의 개수를 세서 반환했다.
단, "|" 가 문자열의 0번째 인덱스로 시작하는 경우는
인덱스 슬라이싱을 0부터 해야하므로 제출 전 분기처리를 추가했다.
# test case : "|uar|e**|be***au|"
class Solution:
def countAsterisks(self, s: str) -> int:
s = s.split("|")
if s[0] != "|":
del s[1::2] # 1번부터 홀수 인덱스
else :
del s[0::2] # 0번부터 짝수 인덱스
s = ''.join(s)
cnt = 0
for i in s:
if i == "*":
cnt += 1
return cnt
임의로 직접 만든 테스트 케이스를 추가해서 만든 최종코드.
예시에 없었는데 미리 예상하고 예외처리 해본 건 처음이라 뿌듯하다.
이전에는 주어진 케이스만 돌아가면 신나서 제출했는데
더 신중하게 답을 맞추는 습관을 들이고 있다.
728x90
반응형
'코딩 테스트 > leetCode' 카테고리의 다른 글
[leetCode] 2176. Count Equal and Divisible Pairs in an Array (Python) (0) | 2022.11.02 |
---|---|
[leetCode] 1913. Maximum Product Difference Between Two Pairs (Python) (0) | 2022.10.31 |
[leetCode] 557. Reverse Words in a String III (Python) (0) | 2022.10.30 |
[leetCode] 1773. Count Items Matching a Rule (Python) (0) | 2022.10.29 |
[leetCode] 1528. Shuffle String (Python) (0) | 2022.10.29 |