반응형
연속한 1의 갯수 문제
각 케이스에 대해 연속된 1의 갯수가 가장 많은걸 찾으면 되는 간단한 문제
100% 내 생각으로 풀었는가?
→ O
비교적 간단하게 해결한 문제이다.
내가 푼 정답 코드
T= int(input())
def max_case(n) :
cnt = n[0]
for i in range(len(n)) :
if cnt < n[i] :
cnt = n[i]
return cnt
for case in range(1,T+1) :
N = int(input())
x = list(input())
temp = []
cnt = 1
for i in range(N) :
if (x[0] != x[N-1]) or (x[0] == '0' and x[N-1] == '0') :
if x[i-1] == '1' and x[i] == '1' :
cnt += 1
temp += [cnt]
elif x[i-1] != x[i] :
cnt = 1
else :
temp += [1]
print(f'#{case} {max_case(temp)}')
경계조건 따져가면서 해결했는데 굳이 이렇게 안했어도 됐을것 같은 코드
느낀점
완전 알고리즘에 대해 잘 모를때 풀이로 낸 코드다 보니 굳이 이렇게 안짜도 될거 같은데? 싶은걸 경계조건 따져가면서 제출한 코드. 심지어 내장함수를 못쓰니까 내장함수까지 억지로 만들어주니 코드가 더 지저분해보이는거 같다.
다시 문제를 보니 더 간단하게 풀수 있었을거 같다.
T= int(input())
for case in range(1,T+1) :
N = int(input())
x = input().split('0')
max_x = 0
for i in x :
if max_x < len(i):
max_x = len(i)
print(f'#{case} {max_x}')
split 함수의 원리에 대해 더 자세히 알았다면 당시에도 이렇게 쉽게 구현했을 수 있을거 같은데 지금보니 아쉬움이 남는다! 더 열심히 해야지 😊
반응형
'알고리즘 풀이 > SW Expert Academy' 카테고리의 다른 글
[SWEA 1234] 비밀번호(python) (0) | 2023.02.13 |
---|---|
[SWEA 2005] 파스칼의 삼각형(python) (0) | 2023.02.13 |
[SWEA 1954] 달팽이 문제 (0) | 2023.02.13 |
[SWEA 1208]Flatten (python) (0) | 2023.02.11 |
[SWEA 1966] 숫자를 정렬하자(python) (0) | 2023.02.11 |
댓글