오늘 푼 문제
https://www.hackerrank.com/challenges/weather-observation-station-9/problem?isFullScreen=true
내 답안
https://github.com/hjn5018/nbc_ai_track_sql/blob/main/hackerrank_weather_obsevation_station_9.sql
어제에 이어서 regexp를 다뤘다.
이번에는 시작에 특정 문자를 포함하지 않는 데이터를 조회했다.
자료 탐색 과정
1. 따옴표는 기억났지만, 이게 맞나 싶기도 해서 어제 짠 쿼리를 참고했다.
2. regexr.com에서 관련 자료를 찾아보려고 했지만 없었다.
3. wikipedia에는 조금 정리된 자료가 있었지만, 참고가 되진 않았다.
4. mysql 문서에서 찾아보려고했지만, 여전히 보기 힘들었다.
5. geeksforgeeks에서 다듬어진 자료를 참고했다.
분명히 따옴표 안의 ^(캐럿)(caret)은 표현의 시작을 의미했다.
mysql문서에서 [^]의 캐럿은 not ~~라는 문구를 보았을 때, 이상한 소리라고 생각했다.
캐럿은 대괄호 안에서 뒤의 문구가 없음을 나타낸다고 한다.
+) regexr.com에서 자료를 찾았다.

문제
https://school.programmers.co.kr/learn/courses/30/lessons/181854
내 풀이
# A_code
def solution(arr, n):
if len(arr) % 2 == 1:
for i in range(len(arr)):
if i % 2 == 0:
arr[i] = arr[i] + n
else:
for i in range(len(arr)):
if i % 2 == 1:
arr[i] = arr[i] + n
return arr
# ============================================
# B_code
def solution(arr, n):
len_arr = len(arr)
if len_arr % 2 == 1:
for i in range(len_arr):
if i % 2 == 0:
arr[i] == arr[i] + n
else:
for i in range(len_arr):
if i % 2 == 1:
arr[i] == arr[i] + n
return arr
arr = [49, 12, 100, 276, 33]
n = 27
right_answer = [76, 12, 127, 276, 60]
result = solution(arr, n)
print(result)
# A_code
# [76, 12, 127, 276, 60]
# B_code
# [49, 12, 100, 276, 33]
이걸로 한 3일은 우려먹었다.
내 눈에는 분명히 len_arr를 도입한 점밖에는 다른 점이 없었다.
튜터님께 드려보니 arr[i] == arr[i] + n와 arr[i] = arr[i] + n에서도 다른 점이 있다고 했다.
일단 문제를 맞히고 나서 고민한거니까 큰 상관은 없었지만..
비교하면서 어디가 잘못됐는지 고민하기보다는
하나의 코드를 진행해보며 이상한 점은 없는지 확인해야겠다는 걸 배웠다.
+) 튜터님은 코드 진행 중 ==는 True나 False를 반환해야하는데 이상했다고 하셨다.