[Programmers] 올바른 괄호

Updated:

올바른 괄호

올바른 괄호 를 클릭하면 바로 이동한다.

[Programmers] 괄호 변환 의 새끼 문제라고 생각하면 된다.

괄호 변환 문제는 올바르지 않다면 올바른 괄호로 바꾸어 반환하는 문제이고

이 문제는 올바른지 아닌지만 반환하면 된다.

자료구조를 처음 배울 때 스택 부분에서 다뤘던 문제이기 때문에 아주 쉽게 풀었다 !


def solution(s):
	stack = list()

	for cur in s:
		try:
			if cur == '(':
				stack.append(cur)
			elif cur == ')':
				stack.pop()
		except IndexError:
			return False

	return len(stack) == 0
def solution(s):
	stack = list()
	answer = True

	for cur in s:
		try:
			if cur == '(':
				stack.append(cur)
			elif cur == ')':
				stack.pop()
		except IndexError:
			answer = False

	if len(stack) > 0:
		answer = False

	return answer
def solution(s):
	stack = list()
	answer = True

	for cur in s:
		try:
			if cur == '(':
				stack.append(cur)
			elif cur == ')':
				stack.pop()
		except IndexError:
			return False

	if len(stack) > 0:
		answer = False

	return answer

다음 중 어떤 코드가 가장 나은 코드인지 고민 중 이다.

첫 번째 코드는 제일 간결하다. 하지만 파이써닉 한 코드는 함수에 return 을 한 번만 사용하도록 권유하고 있다.

또 return 문을 변수가 아닌 조건문을 넣어 반환한다.

한 눈에 봤을때 이게 더 직관적일지 아님 변수에 값을 저장하여 반환하는게 직관적일지 고민중 ..

두 번째 코드는 따라서 return 을 마지막에 한번 사용하고 변수에 값을 저장하여 반환한다.

대신 코드에 if 문이 추가 되었다.

세 번째 코드는 첫 번째 코드와 두 번째 코드를 섞어 보았다. 뭔가 정신이 없어보이긴 한다..


피드백을 받아보았는데 1번 스타일이 제일 나은 것 같다.

하지만 try except 문은 되도록 지양하고 사용해야한다면 try 안에는 한 가지 기능만 넣자.

try 안에 여러 명령이 있다면 어떤 명령에서 에러가 발생했는지 모른다.


Categories:

Updated:

Leave a comment