Programmers

Programmers 문제 풀이 24

백단비 2023. 6. 20. 11:13

문제 설명 : 종이 자르기

큰 종이를 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개보다 적게 남아있으면 남아있는 것들만 추출해 준다.

 

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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