WeniVooks

검색

정규표현식 톺아보기 with JavaScript and Python

알고리즘 문제

해당 답안은 영상강의에서만 제공합니다.

해당 문제는 각각 아래 문제 링크에서 직접 제출할 수 있습니다.

python best 20 python basic 100 javascript best 20 javascript basic 100

1. 날짜 패턴 찾기

1.1 문제 설명

주어진 문자열에서 날짜 형식(YYYY-MM-DD)을 찾고, 연도, 월, 일을 각각 그룹으로 추출하는 함수를 작성해주세요. 문자열은 여러 날짜 형식을 포함할 수 있으며, 각 날짜의 연도, 월, 일을 튜플 형태로 리스트에 담아 반환합니다.

예를 들어, 문자열 "2024-01-20에 약속이 하나 있고 다른 약속은 2023-12-31이야!" 문장에서 함수는 [(2024, 01, 20), (2023, 12, 31)]을 반환해야 합니다.

1.2 제한 사항
  • 문자열은 0개 이상의 날짜 형식을 포함합니다.
  • 문자열 내의 날짜는 YYYY-MM-DD 형식을 따릅니다.
1.3 입출력 예
입력 (문자열) 출력 (날짜의 연도, 월, 일 튜플 리스트)
"The event will happen on 2024-01-20." [[2024, 01, 20]]
"Dates: 2023-12-31, 2024-01-01, and 2024-02-28." [[2023, 12, 31], [2024, 01, 01], [2024, 02, 28]]
"No dates here." []
1.4 입출력 설명

첫 번째 예시에서 문자열은 "2024-01-20"이라는 날짜를 포함합니다. 두 번째 예시에서 문자열은 세 개의 날짜를 포함합니다. 세 번째 예시에서는 유효한 날짜가 없으므로 빈 리스트를 반환합니다.

2.1 암호문

2.2 문제 설명

라이캣은 신비의 섬 제주에서 7개의 원석을 확보하게 됩니다. 라이캣은 7개의 원석을 동료들에게 나눠주고, 라이언을 치기 위해 각자의 마을로 돌아가 힘을 모을 것을 당부합니다.

절대 스톤을 부여받은 동료들은 각각의 마을로 향합니다. 동료들은 먼 마을에서 고양이 마을로 돌아간 라이캣과 암호로 된 편지를 주고받습니다. 여러 가지 암호문 중, 최종 혁명(revolution) 날짜 암호문은 로 해독할 수 있습니다. 다음 규칙에 따라 편지에서 혁명의 날짜를 알아내 출정 준비를 하세요.

  • 편지 안에 내용은 문자열로 주어집니다.
  • 문자열 중에 r, e, v 뒤에 나오는 값을 더하여 나온 최종 숫자에서 앞자리를 로 뒷자리를 로 판단합니다.
  • r, e, v 뒤에 나오는 숫자는 1부터 10까지입니다. 이를 넘어가는 숫자가 나올 경우 앞 숫자만 뽑아냅니다.
2.3 제한 사항
  • 1 ≤ r, e, v 뒤의 숫자 ≤ 10
  • 11 ≤ 합한 값 ≤ 99

2.4 입출력 예
입력 출력
'a10b9r1ce33uab8wc918v2cv11v9' '1월 6일'
2.5 입출력 설명

패턴에 맞게 뽑아낸 값은 아래와 같습니다. e33은 e3으로 인식해서 3만 뽑아내야 합니다.

['r1', 'e3', 'v2', 'v1', 'v9']
['r1', 'e3', 'v2', 'v1', 'v9']

이 숫자를 모두 더하면 16으로 앞자리가 월, 뒷자리가 일이 됩니다. 혁명의 날짜는 1월 6일입니다.

4장 알고리즘 문제