문제 설명 : 종이 자르기
큰 종이를 1 *1 크기로 자르려 한다.
예를 들어 2*2 크기의 종이를 1*1 크기로 자르려면 최소 가위질 세 번이 필요하다.
정수 M, N이 매개변수로 주어질 때,
M * N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하는 solution함수???
제한사항
- 0 < M,N < 100
- 종이를 겹쳐서 자를 수 없습니다.
입출력 예
M | N | result |
2 | 2 | 3 |
2 | 5 | 9 |
1 | 1 | 0 |
문제 풀이
function solution(M, N) {
return M * N - 1
}
문제 설명 : 문자열 밀기
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다.
이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때,
A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return 하고
밀어서 B가 될 수 없으면 -1을 return 하도록 하는 soultion 함수????
제한사항
- 0 < A의 길이 = B의 길이 < 100
- A, B는 알파벳 소문자로 이루어져 있습니다.
입출력 예
A | B | result |
"hello" | "ohell" | 1 |
"apple" | "elppa" | -1 |
"atat" | "tata" | 1 |
"abc" | "abc" | 0 |
문제 풀이
function solution (A, B){
var answer = -1;
let count = 0;
if(A === B) {
return 0
}
while(count < A.length) {
if(A === B) {
return count
}
let a = A.slice(A.length - 1)
let b = A.slice(0, A.length -1)
A = a + b
count++
}
return answer
}
if문이 두번 들어가니 차라리 do while 문을 써보는 것도 괜찮을 듯하다
do{
if(A === B) {
return count
}
let a = A.slice(A.length -1)
let b = A.slice(0,A.length -1)
A = a + b
count++
}
while(count < A.length)
문제를 해결한 후 다른 사람의 풀이를 봤는데 코드 한 줄로 해결하셨다..
function solution(A, B) {
return (B+B).indexOf(A)
}
어차피 문자열을 미는 거니까 B문자열을 두 번 쓴 후 거기에 처음 문자열이 있으면 그 위치를 반환해 주고
없으면 -1이 나오는.. 이런 생각 어떻게 하는 걸까 정말
문제 설명 : 잘라서 배열로 저장하기
문자열 my_str과 n이 매개변수로 주어질 때,
my_str을 길이 n씩 잘라서 저장한 배열을 return 하는 solution 함수??
제한사항
- 1 ≤ my_str ≤ 100
- 1 ≤ n ≤ my_str의 길이
- my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있다.
입출력 예
my_str | n | result |
"abc1Addfggg4556b" | 6 | ["abc1Ad", "dfggg4", "556b"] |
"abcdef123" | 3 | ["abc", "def", "123"] |
문제 풀이
Functio solution(my_str, n) {
var answer = []
for(let i = 0; i < my_str.length; i+=n) {
answer.push(my_str.substr(i,n)
}
return answer
}
i번째부터 n개만큼 추출해서 answer배열에 넣어줬다.
substr이나 slice는 n개보다 적게 남아있으면 남아있는 것들만 추출해 준다.
320x100
'Programmers' 카테고리의 다른 글
Programmers 문제 풀이 26 (0) | 2023.06.22 |
---|---|
Programmers 문제 풀이 25 (0) | 2023.06.21 |
Programmers 문제 풀이 23 (0) | 2023.06.19 |
Programmers 문제 풀이 22 (0) | 2023.06.18 |
Programmers 문제 풀이 21 (0) | 2023.05.22 |