[ 프로그래머스 ] K진수에서 소수 구하기 (C++) - 수학

2024. 4. 5. 15:09· 문제풀이/알고리즘 문제 풀이
목차
  1. 🔗 문제 링크
  2. 💡 문제 풀이 및 해석
  3. ⭐️ 정답 코드 및 설명
  4. 🤔 문제 후기
728x90

🔗 문제 링크

 

프로그래머스

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

programmers.co.kr


💡 문제 풀이 및 해석

  1. 일단 K진수를 구한다.
  2. 0을 기준으로 K진수를 split한다.
  3. split한 수들이 소수인지 판별하고, 소수이면 answer에 1을 더한다.

⭐️ 정답 코드 및 설명

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

bool isSosu(long n){
    if(n==1||n==0) return false;
    for(int i=2; i<=sqrt(n); i++){
        if(n%i==0) return false;
    }
    return true;
}

int solution(int n, int k) {
    int answer = 0;
    string kNum="";

    while(n>=k){
        string i = to_string(n%k);
        n/=k;
        kNum+=i;
    }
    kNum+=to_string(n);
    reverse(kNum.begin(),kNum.end());

    vector<long> integer;
    string temp="";

    for(int i=0; i<kNum.size(); i++){
        char num = kNum[i];
        if(i == kNum.size()-1){
            temp+=num;
            integer.push_back(stol(temp));
            break;
        }
        if(num == '0'){
            if(temp=="") continue;
            integer.push_back(stol(temp));
            temp="";
            continue;
        }
        temp+=num;
    }

    for(long i : integer){
        if(isSosu(i)) answer++;
    }

    return answer;
}

🤔 문제 후기

int로 푸는 습관이 있다보니, long을 써야하는 부분을 알고 있었지만, 안고친 부분이 좀 많았다. 그래서 core dumped 오류가 계속 발생해도 이유를 찾지 못했다. 그리고 소수를 계산해야 하는데, 평소에는 아리토스테네스의 체를 사용해서 계산했는데, 그렇게하면 OutOfBounds오류가 날 수밖에 없기 때문에, 소수를 구해서 하는 문제가 아닌 숫자마다 소수인지 판별을 해야하는데, 이 점만 빠르게 캐치하면, 풀기에 어려운 문제는 아니였다.

728x90

'문제풀이 > 알고리즘 문제 풀이' 카테고리의 다른 글

[ 프로그래머스 ] 파괴되지 않은 건물 (C++) - 누적합  (0) 2024.04.06
[ 프로그래머스 ] 주차 요금 계산 (C++) - 구현  (0) 2024.04.05
[ 프로그래머스 ] 신고 결과 받기 (C++) - 자료구조  (0) 2024.04.05
[ 백준 1759 ] 암호 만들기 (C++) - 조합, BackTracking  (0) 2024.04.04
[ 백준 16120 ] PPAP (C++) - 그리디  (0) 2024.04.02
  1. 🔗 문제 링크
  2. 💡 문제 풀이 및 해석
  3. ⭐️ 정답 코드 및 설명
  4. 🤔 문제 후기
'문제풀이/알고리즘 문제 풀이' 카테고리의 다른 글
  • [ 프로그래머스 ] 파괴되지 않은 건물 (C++) - 누적합
  • [ 프로그래머스 ] 주차 요금 계산 (C++) - 구현
  • [ 프로그래머스 ] 신고 결과 받기 (C++) - 자료구조
  • [ 백준 1759 ] 암호 만들기 (C++) - 조합, BackTracking
RealTone
RealTone
풀스택 개발자되기 기원 1년차
RealTone
개발공부 블로그
RealTone
전체
오늘
어제
  • 분류 전체보기 (85)
    • 개발자 공부 (8)
      • 인프라 - AWS (2)
      • Frontend - React (2)
      • Frontend - Next (2)
    • 구름톤트레이닝 (2)
      • 강의 후기 (0)
    • 문제풀이 (74)
      • 알고리즘 문제 풀이 (62)
      • SQL 문제 풀이 (12)
    • 개인 (0)
      • 멕북초기화세팅 (0)

블로그 메뉴

  • 홈
  • 태그
  • GitHub
  • 방명록

태그

  • AWS
  • baekjoon
  • CI/CD
  • codedeploy
  • ec2
  • G2
  • G3
  • G4
  • G5
  • git/github

최근 글

hELLO · Designed By 정상우.v4.2.2
RealTone
[ 프로그래머스 ] K진수에서 소수 구하기 (C++) - 수학
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.