SQL 코드카타 140번
모음(a,e,i,o,u)으로 시작하고 끝나는 city의 이름을 찾는 문제.
어제에 이어 정규표현식의 응용 문제다.
select distinct city
from station
where city regexp '^(a|e|i|o|u).*(a|e|i|o|u)$'
모음으로 시작하는 것^(a|e|i|o|u)과 끝나는 것(a|e|i|o|u)$의 조건을 적어준 다음 사이에 .*을 넣어주면 된다.
임의의 문자(.)가 0개 이상 반복됨(*)을 나타낸다.
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
예를 들어 numbers가 [2,1,3,4,1]로 주어지면 numbers의 모든 2자리 수 조합의 합인 [2,3,4,5,6,7]을 반환해야 한다. (2가 들어가도 되는 이유는 1이 2개 있기 때문.)
<1차 시도>
테스트케이스 통과, 제출 결과 오답(9개 케이스 중 2개 틀림)
def solution(numbers):
x = []
for i in range(len(numbers)):
for j in range(i+1,len(numbers)):
x.append(numbers[i]+numbers[j])
answer = list(set(x))
return answer
알고 보니 배열에 오름차순으로 담아서 return하라는 조건을 빼먹어서 오류가 난 거였다. 어떤 케이스에서는 오름차순 정렬이 지켜지지 않는 경우도 있는 것 같다.
<2차 시도> : 정답
def solution(numbers):
x = []
for i in range(len(numbers)):
for j in range(i+1,len(numbers)):
x.append(numbers[i]+numbers[j])
answer = list(set(x))
return sorted(answer)