2023. 9. 28. 12:04, 알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/120906
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
while(n>0){
answer+=n%10;
n/=10;
}
return answer;
}
처음에 풀이를 제출할때,
n&10; 으로 작성해서 제출했다가 왜 틀렸지 싶어서 잠깐 헷갈렸다.
몇번 저런식으로 나머지 계산을 할때 %을 써야하는데 &을 사용하는 경우가 있었다.
그러지 않도록 주의하도록 하자.
이번 문제의 경우는 각 1의 자리수로 해결하는 방식을 택했는데, 각 숫자를 string 으로 바꾸고, 배열의 원소별로 char에 접근한뒤, 해당 값들을 int로 변경하는 형태로도 해결할 수 있고, 해당 풀이를 다른 사람의 풀이를 통해 첨부해보면,
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
string s = to_string(n);
for(char c : s)
answer += (c - '0');
return answer;
}
이와 같다. 이러한 풀이도 물론 사용할 수 있으니까 상황에 따라 잘 취사선택 해보도록 하자.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Lv 0. 문자열안에 문자열 *다시 풀어보기* **매우중요** (0) | 2023.09.29 |
---|---|
Lv 0. OX퀴즈 (0) | 2023.09.28 |
Lv 0. n의 배수 고르기 (0) | 2023.09.28 |
Lv 0. 숫자 찾기 (0) | 2023.09.28 |
Lv 0. 배열의 유사도 - 효율적인 검색을 고려한 rb트리를 이용한 풀이. c++에서는 set *다시 풀어보기* (0) | 2023.09.27 |
Comments, Trackbacks