달리기를 시작했습니다!
최근 건강검진을 다녀왔는데요, 분명히 건강한 몸이라고 생각했음에도 불구하고 맘에 들지 않는 포인트들이 있었습니다..
그렇기에! 운동을 하고있지만 더 열심히 해야겠다 다짐이 들었답니다.
또한 전날인 5월 10일 수요일날 같은 수업을 듣는 친구가
"캬. 형 요즘 운동 열심히 하나봐요. 전완근이 많이 윤곽이 잡혔네요." 라고 말해준것이 어찌나 고맙고 설레던지!
더욱 더 운동에 정진하여 멋지고 건강한 GCOCO가 되도록 하겠습니다 ^^7
기분좋게, 본론으로 가시죠!
참고로 이 문제도 옛날에 풀었던 문제입니다. 이전의 코드와 새로 짠 코드를 비교해보겠습니다!
//https://school.programmers.co.kr/learn/courses/30/lessons/147355
#include <string>
#include <vector>
using namespace std;
int solution(string t, string p) {
int answer = 0;
for (int i = 0; i <= t.size() - p.size(); i++) {
string s = t.substr(i, p.size());
if (stoll(s) <= stoll(p))
answer++;
}
return answer;
}
음 흐름은 다음과 같겠네요.
사실 stoll(s) <= stoll(p) 이 부분은 좋지 못하다고 할 수 있겠습니다. 만약 굉장히 긴 string이라면 long long으로 커버가 되지 않을 가능성이 농후합니다! 그리고 무엇보다... string은 비교연산을 지원합니다!
다음은 새로운 코드입니다.
#include <string>
#include <vector>
using namespace std;
int solution(string t, string p) {
int answer = 0;
int size = p.size();
for(int i =0; i<=t.size()-size;i++){
string tmp;
tmp = t.substr(i,size);
if(tmp<=p)
answer++;
}
return answer;
}
네 별 다른것은 없습니다만, 짚어보자면 아까 말했듯이 string은 string 끼리의 비교 연산을 지원하기 때문에 위의 if문과 같이 사용할 수 있습니다.
작은 도움이 되었길 바라며, 포스팅을 마치겠습니다! 😁