덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다.
1 ≤ quiz의 길이 ≤ 10X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.
X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다.
-10,000 ≤ X, Y ≤ 10,000-20,000 ≤ Z ≤ 20,000[연산자]는 + 와 - 중 하나입니다.
입출력 예1 #
13 - 4 = -3 은 틀린 수식이므로 "X", 5 + 6 = 11 은 옳은 수식이므로 "O" 입니다.
따라서 ["X", "O"]를 return합니다.
입출력 예2 #
219 - 6 = 13 은 옳은 수식이므로 "O", 5 + 66 = 71 은 옳은 수식이므로 "O", 5 - 15 = 63 은 틀린 수식이므로 "X", 3 - 1 = 2는 옳은 수식이므로 "O"
따라서 ["O", "O", "X", "O"]를 return합니다.
해설
1. "5 + 6 = 11"
위 수식을 ' = ' 을 가지고 앞 뒤로 분할 했다.
2. 이 수식이 ['5 + 6', '11'] 처럼 분할되어 리스트에 담기게 되는데, 무조건 마지막 요소는 결과값이고, 첫번째 요소는 +든 - 든 또 분할해야 했다.
3. int(11)처럼 str -> int 로 변환했고
4. 첫번째 요소는 white_space(공백)을 기준으로 또 분할을 했다.
5. list = ['5', '+', '6'] 처럼 담기게 되었고 list[1]번 요소가 + 면 [0], [-1] 요소를 더하게 하고 마이너스면 빼게 했다.
6. 이걸 반복문을 돌려 list에 담고 결과를 리턴했다.
나는 상당히 노가다를 했다. 다른 사람들 푼거보니까 엄청 짧네...
문제를 많이 풀면서 다른 사람들은 어캐 푸나 좀 봐야겠다.
'코테공부' 카테고리의 다른 글
프로그래머스 9일차 - 문자열 정렬하기 (2) (0) | 2023.02.22 |
---|---|
프로그래머스 7일차 - 겹치는 선분의 길이 (0) | 2023.02.20 |
프로그래머스 5일차 - 다음에 올 숫자 (0) | 2023.02.18 |
프로그래머스 4일차 - 7의 개수 (0) | 2023.02.17 |
프로그래머스 3일차 - 잘라서 배열로 저장하기 (0) | 2023.02.16 |