Programmers

Programmers 문제 풀이 17

백단비 2023. 4. 11. 23:40

문제 설명 : 문자열 안에 문자열

문자열 str1, str2가 매개변수로 주어질 때,

str1안에 str2가 있다면 1 없다면 2를 return 하는 solution함수?

 

제한 사항

  • 1 ≤ str1의 길이 ≤ 100
  • 1 ≤ str2의 길이 ≤ 100
  • 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.

 

입출력 예

str1 str2 result
"ab6CDE443fgh22iJKlmn1o" "6CD" 1
"ppprrrogrammers" "pppp" 2
"AbcAbcA" "AAA" 2

 

 

문제 풀이

- indexOf나 includes로 풀 수 있습니다

- indexOf일 경우에는 위치를 반환하는데 str2가 str1에 없으면 -1을 반환합니다

   그걸 이용해서 삼항연산자를 사용해서 indexOf가 -1보다 클 경우 있을 때니까 1 아니면 없을 때니까 2를 반환하게 합니다.

- includes를 사용하는 경우  boolean값을 반환하기 때문에 true면 1 false면 2를 반환하는 삼항연산자를 작성하면 됩니다.

//indexOf사용할 경우
function solution(str1, str2) {
	return str1.indexOf(str2) > -1 ? 1 : 2
}

//includes를 사용할 경우
function solution(str1, str2) {
	return str1.includes(str2) ? 1 : 2
}

 

 


 

 

문제 설명 : 개미 군단

개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다.

장군 개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다.

예를 들어 23의 여치를 사냥할 때, 일개미 23마리를 데리고 가도 되지만,

장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다.

샤냥감의 체력 hp가 매개 변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면

몇 마리의 개미가 필요한지를 return 하는 solution 함수?

 

제한 사항

  • hp는 자연수입니다.
  • 0 ≤ hp ≤ 1000

 

입출력 예

hp result
23 5
24 6
999 201

 

 

문제 풀이

최소한의 병력을 구하는 것이기 때문에 공격력이 강한 장군 개미의 수부터 차례로 구해주면 됩니다

  1. hp를 장군개미의 공격력인 5로 나눈 후 Math.floor로 몫을 정수로 구해줍니다

  2. hp를 5로 나눈 나머지에 또 병정개미의 공격력인 3으로 나눈 후 Math.floor로 몫을 정수로 구해줍니다.

  3. hp를 5로 나눈 나머지를 다시 3으로 나눈 나머지를 구해줍니다.

1~3번까지 다 더해주면 됩니다.

function solution(hp) {
	var answer = 0;
	answer += Math.floor(hp / 5)
	answer += Math.floor((hp % 5) / 3)
	answer += (hp % 5) % 3
	return answer
}

 

 

 

프로그래머스

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

programmers.co.kr

 

320x100

'Programmers' 카테고리의 다른 글

Programmers 문제 풀이 19  (0) 2023.05.20
Programmers 문제 풀이 18  (0) 2023.04.12
Programmers 문제 풀이 16  (0) 2023.04.10
Programmers 문제 풀이 15  (0) 2023.04.07
Programmers 문제 풀이 14  (0) 2023.04.06