코딩테스트 회고록/코테_Java
[JAVA] 프로그래머스 - 7의 개수
iamjisu
2023. 3. 20. 23:31
프로그래머스 코딩테스트 연습 입문단계 '7의 개수' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120912
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓ 문제 설명
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
※ 아래 입출력 예시를 참고하세요!
⚠️ 제한사항 및 입출력 예시
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array의 원소 ≤ 100,000
입출력 예시 ▼
입력 (array 배열)
[7,77,17]
출력 (return 값)
4
// [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.
🔍 알고리즘 구상
- array 배열을 문자열로 바꾼다
ex) "77717"
- substring() 로 문자열을 하나씩 자르고
- equals() 메서드를 이용해 "7"과 바꾼 문자열을 비교한다
- "7"과 바꾼 문자열이 같다면 cnt의 값에 1을 더한다
✏️ 직접 구현한 코드
import java.util.*;
class Solution {
public int solution(int[] array) {
String answer = Arrays.toString(array);
int cnt = 0;
for(int i = 0; i < answer.length()-1; i++) {
if(answer.substring(i,i+1).equals("7")) {
cnt++;
}
}
return cnt;
}
}
🗣️ 코드 설명
- 매개변수로 받은 array 배열을 Arrays 클래스 toString() 메서드를 이용해 answer에 문자열로 넣습니다.
- 7의 개수를 저장할 cnt를 생성합니다.
- i가 문자열 answer의 길이 -1의 값 만큼 증가하며 반복하는 반복하는 for문을 만들고, 그 안에서 문자열 answer의 값을 substring() 메서드로 자른 다음, 문자열 "7"과 비교해 7이라면 cnt에 1을 더합니다.
⭐ 기억하고 넘어갈
- Arrays 클래스의 toString() 메서드
- substring() 메서드 사용
String 변환하는 여러 방법
< 배열을 문자열로 >
Arrays.toString(배열)
< char배열을 문자열로 >
String.valueOf(배열)
new Stirng(배열)
< 문자열을 char배열로 >
문자열.toCharArray()