2023. 10. 1. 17:52, 알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/120912
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> array) {
int answer = 0;
for(auto c: array){
int t=0;
while(c>0){
t=c%10;
if(t==7) answer++;
c/=10;
}
}
return answer;
}
위의 코드처럼, 각각의 array의 원소들을 1의 자리를 파싱하면서 해당 값들에 대해서 7인지 판별하고, 7이면 answer++; 을 해주는 형태로 코드를 작성하였다.
다른 사람의 풀이를 보니, 해당 수들을 하나의 수마다 to_string() 함수를 사용해줘서 스트링으로 변형하고, 해당 스트링의 개별 char로 이것이 '7'인지 판별하는 형태의 코드를 작성한 풀이도 있는데, 이 풀이 또한 괜찮은 풀이로 보여진다. 위와 같은 파싱형태를 취하지 않기 때문에 코드 자체는 조금 더 간결해질 수 있다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> array)
{
int answer=0;
for(int i : array)
{
string s=to_string(i);
for(char c : s)
if(c=='7') answer++;
}
return answer;
}
이 풀이가 직관적으로 이해하기에는 더 좋을것 같다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Lv 0. 중복된 숫자 개수 - algorithm 헤더에 있는 count() 함수를 사용해보자. (0) | 2023.10.01 |
---|---|
Lv 0. 잘라서 배열로 저장하기. (0) | 2023.10.01 |
Lv 0. 문자열 정렬하기 (0) | 2023.09.29 |
Lv 0. 세균 증식 (0) | 2023.09.29 |
Lv 0. 제곱수 판별하기 (0) | 2023.09.29 |
Comments, Trackbacks