Front-End
프로그래머스 기초트레이닝 18일차 본문
드디어 끝이 보여갑니다...
페이지수 1-2만 남았어요 ...!!
2페이지에도 5문항남아서 오늘안에 1페이지로 만들기가 목표입니다. .!
문제 91. 수열과 구간 쿼리 3
문제 설명
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.
각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
입출력 예
arr | queries | result |
[0, 1, 2, 3, 4] | [[0, 3],[1, 2],[1, 4]] | [3, 4, 1, 0, 2] |
입출력 예 설명
저의 풀이!
메모
구조분해 할당으로 queries의 인자를 쉽게 접근할 수 있게 한 후 문제를 풀었습니다.
문제 92. 1로 만들기
문제 설명
정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다.
10 / 2 = 5
(5 - 1) / 2 = 4
4 / 2 = 2
2 / 2 = 1
위와 같이 4번의 나누기 연산으로 1이 되었습니다.
정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요.
입출력 예
num_list | result |
[12, 4, 15, 1, 14] | 11 |
입출력 예 설명
12는 3번, 4는 2번, 15는 3번, 1은 0번, 14는 3번의 연산이 필요하기 때문에 총 11번의 연산이 필요합니다.
저의 풀이!
메모
while 문으로 무한 반복문을 돌려줬습니다.
조건 하나 걸어두고! '1일경우 멈추게 해주세요'라는 하나만 두고 말이죠!!
그리고 나머지는 원래 저희가 해야할 계산들을 홀수 짝수의 조건을 넣어 계산을 넣어줍니다!
문제 93. 세 개의 구분자
문제 설명
임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다.
예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다.
문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며,
return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.
입출력 예
myStr | result |
"baconlettucetomato" | ["onlettu", "etom", "to"] |
"abcd" | ["d"] |
"cabab" | ["EMPTY"] |
입출력 예 설명
"c" 이전에는 "a", "b", "c" 이외의 문자가 없습니다.
"c" 이후에 문자열 "d"가 있으므로 "d"를 저장합니다.
따라서 ["d"]를 return 합니다.
"a", "b", "c" 이외의 문자가 존재하지 않습니다. 따라서 저장할 문자열이 없습니다.
따라서 ["EMPTY"]를 return 합니다.
저의 풀이!
메모
문자열을 split으로 구분자를 두되, 정규식을 넣어서 했습니다!
그렇게 하면 a, b, c로 이루어진 모든 구분자를 사용하게 됩니다!
'알고리즘' 카테고리의 다른 글
프로그래머스 기초트레이닝 20일차 (0) | 2023.10.27 |
---|---|
프로그래머스 기초트레이닝 19일차 (4) | 2023.10.19 |
프로그래머스 기초트레이닝 17일차 (2) | 2023.10.04 |
프로그래머스 기초트레이닝 16일차 (0) | 2023.10.03 |
프로그래머스 기초트레이닝 15일차 (1) | 2023.09.12 |