Front-End
프로그래머스 기초트레이닝 13일차 본문
문제 64 . 0 떼기
문제 설명
정수로 이루어진 문자열 n_str이 주어질 때,
n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.
입출력 예
n_str | result |
"0010" | "10" |
"854020" | "854020" |
입출력 예 설명
"0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다.
"854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다.
저의 풀이!
메모
문자열을 숫자로 변경하면 앞에있는 숫자 0들은 사라지고 정수만 남기때문에
일단 숫자로 변환해서 0을제거하고 그 후에 문자열로 출력하게 함
문제 65 . 뒤에서 5등까지
문제 설명
정수로 이루어진 리스트 num_list가 주어집니다.
num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
입출력 예
num_list | result |
[12, 4, 15, 46, 38, 1, 14] | [1, 4, 12, 14, 15] |
입출력 예 설명
[12, 4, 15, 46, 38, 1, 14]를 정렬하면 [1, 4, 12, 14, 15, 38, 46]이 되고, 앞에서 부터 5개를 고르면 [1, 4, 12, 14, 15]가 됩니다.
저의 풀이!
메모
sort함수로 기존 배열의 순서를 오름차순으로 정렬한 후 slice를 이용해서 순서를 잘라주었습니다.
문제 66 . 순서 바꾸기
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때,
num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠
n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
입출력 예
num_list | n | result |
[2, 1, 6] | 1 | [1, 6, 2] |
[5, 2, 1, 7, 5] | 3 | [7, 5, 5, 2, 1] |
입출력 예 설명
[2, 1, 6]에서 첫 번째 이후의 원소는 [1, 6]이고 첫 번째까지의 원소는 [2]입니다. 두 리스트를 이어 붙이면 [1, 6, 2]가 됩니다.
[5, 2, 1, 7, 5]에서 세 번째 이후의 원소는 [7, 5]이고 세 번째까지의 원소는 [5, 2, 1]입니다. 두 리스트를 이어 붙이면 [7, 5, 5, 2, 1]가 됩니다.
저의 풀이!
메모
n을 기준으로 뒤에랑 앞에를 나눠서 변수에 담은 후
배열합치는 concat 메서드를 사용해서 합쳤습니다.
스프레드로도 가능합니다.
요즘엔 concat 보다는 스프레드로 많이 사용한다고 합니다!
문제 67 . l로 만들기
문제 설명
알파벳 소문자로 이루어진 문자열 myString이 주어집니다.
알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.
입출력 예
myString | result |
"abcdevwxyz" | "lllllvwxyz" |
"jjnnllkkmm" | "llnnllllmm" |
입출력 예 설명
0 ~ 4번 인덱스의 문자 "a","b","c","d","e"는 각각 "l"보다 앞서는 문자입니다. 따라서 "l"로 고쳐줍니다.
그 외의 문자는 모두 "l"보다 앞서지 않는 문자입니다. 따라서 바꾸지 않습니다.
따라서 "lllllvwxyz"을 return 합니다.
0번, 1번, 6번, 7번 인덱스의 문자 "j","j","k","k"는 각각 "l"보다 앞서는 문자입니다. 따라서 "l"로 고쳐줍니다.
그 외의 문자는 모두 "l"보다 앞서지 않는 문자입니다. 따라서 바꾸지 않습니다.
따라서 "llnnllllmm"을 return 합니다.
저의 풀이!
메모
;;;;; 저는 map 함수를 이용해서 match로 정규식을 사용해서 마지막에 join을 썼습니다.
근데 ..!! 자바스크립트에서는 문자도 부등호 비교가 가능하다고 합니다..!!!!!
문제 68 . 할 일 목록
문제 설명
오늘 해야 할 일이 담긴 문자열 배열 todo_list와
각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때,
todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
입출력 예
todo_list | finished | result |
["problemsolving", "practiceguitar", "swim", "studygraph"] | [true, false, true, false] | ["practiceguitar", "studygraph"] |
입출력 예 설명
예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.
저의 풀이!
메모
여기서 저는 반복을 사용해서 만약 true가 아닌 경우 새 배열에 요소를 넣어주면서 출력해 냈습니다.
근데 사실 filter로 조건으로 넣어주면 더 깔끔하게 정리를 할 수 있습니다.>!
문제 69 . 특이한 이차원 배열 2
문제 설명
n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때,
arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
입출력 예
arr | result |
[[5, 192, 33], [192, 72, 95], [33, 95, 999]] | 1 |
[[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]] | 0 |
입출력 예 설명
저의 풀이!
메모
이중 배열이라 이중 반복문을 사용해서 조건을 맞춰주었다.
조큼 생각하면 쉬웠다!
'알고리즘' 카테고리의 다른 글
== 추가적인 공부 == (1) | 2023.09.11 |
---|---|
프로그래머스 기초트레이닝 14일차 (1) | 2023.09.09 |
프로그래머스 기초트레이닝 12일차 (0) | 2023.08.28 |
프로그래머스 기초트레이닝 11일차 (0) | 2023.08.26 |
프로그래머스 기초트레이닝 11일차 (0) | 2023.08.26 |