알고리즘

[구름톤 챌린지] Day 4 - 완벽한 햄버거 만들기

motti 2023. 8. 17. 15:27
반응형

https://9oormthonchallenge.oopy.io/?utm_source=community&utm_medium=social_affiliate&utm_content=pre_apply

 

구름톤 챌린지

구름LEVEL 알고리즘 먼데이 챌린지가 구름톤 챌린지로 새롭게 찾아왔습니다. 온라인 알고리즘 문제 풀이와 오프라인 팀 챌린지를 모두 즐길 수 있는 구름톤 챌린지와 4주 동안 매일 꾸준히 성장

9oormthonchallenge.oopy.io

문제


풀이

n = input()
array = list(map(int,input().split()))


def solution():
	left = array[0] # 첫 시작
	answer = left # 총합
	desc = False
	for i in range(1,len(array)): 1번째부터 n번째까지
		right = array[i]
		if left < right: # 오름차순
			if desc == False:
				answer += right
				left = array[i]
			else: # 오른쪽 값이 더 큰데 내림차순이라면 잘못된 햄버거
				return 0
		elif left > right: # 내림차순
			desc = True 
			answer += right
			left = array[i]
		else: # 같을 때 
			answer += right
			left = array[i]
			
	return answer
print(solution())

1. 처음에는 max() 함수를 이용하여 양 옆을 비교할랬으나 이미 max() 자체가 시간복잡도 O(N)이라 다른 방법을 고민하는게 어려웠음

2. 내림차순부터는 계속해서 오른쪽값이 더 작아야하기에 desc라는 flag를 세워 내림차순인데 오른쪽 값이 더 크면 잘못된 로직이므로 0을 출력

3. 제대로 되었다면 answer에 계속해서 추가하여 return


느낀점

오랜만에 코테를 다시 도전하다보니 로직을 생각하는 것에서 오래걸림. 간단한 문제여도 새로운 방법을 고민하느라 시간을 잡아먹어도 되나 싶음. 코테는 제한된 시간내에 푸는 것도 중요하여 참신한 방법도 있지만 빠르게 푸는것도 고려할 것

반응형