티스토리 뷰

 최근 새로운 환경에 적응한다고 알고리즘 문제를 풀지 못했다. 그래서 풀 수 있었던 문제도 쉽게 풀리지가 않아, 가장 쉬운 문제들부터 차근차근 풀어나가는 것도 좋을 것 같다는 생각이 들었다. 그리고 마침 프로그래머스에 코딩 기초 트레이닝 캘린더라는 것이 있길래, 하루에 day 하나씩 풀어가고 있다. 솔직히 난이도가 크게 어렵지 않기 때문에 기록할 것도 없다고 생각했지만, 일단 풀기는 푼 것이니까 기록하려 한다.

 

1. n의 배수

https://school.programmers.co.kr/learn/courses/30/lessons/181937

 

프로그래머스

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

programmers.co.kr

 

 주어진 num이 n의 배수인지를 판별하는 문제이다. 만약 num이 n의 배수라면 num을 n으로 나누었을 때의 나머지는 0일 것이다. 예를 들어, 10은 2의 배수이므로 10 / 2의 나머지는 0이다. 하지만 10은 3의 배수가 아니므로 10 / 3의 나머지는 1이다. 이를 코드로 작성하였다.

 

#include <string>
#include <vector>

using namespace std;

int solution(int num, int n) {
    return num % n == 0;
}

 


 

2. 공배수

https://school.programmers.co.kr/learn/courses/30/lessons/181936

 

프로그래머스

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

programmers.co.kr

 

 주어진 number가 n의 배수이면서 m의 배수인지 판별하는 문제이다. 즉, number를 n으로 나눈 나머지와 m으로 나눈 나머지가 모두 0이어야 한다.

 

#include <string>
#include <vector>

using namespace std;

int solution(int number, int n, int m) {
    int answer = 0;
    
    answer = (number % n == 0 && number % m == 0) ? 1 : 0;
    
    return answer;
}

 


 

3. 홀짝에 따라 다른 값 반환하기

https://school.programmers.co.kr/learn/courses/30/lessons/181935

 

프로그래머스

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

programmers.co.kr

 

 만약 주어진 숫자 n이 홀수일 경우, 1부터 n까지의 홀수의 합을 구해야 한다. 만약 n이 짝수일 경우, 1부터 n까지의 각 짝수의 제곱의 합을 구해야 한다. 짝수는 2의 배수이고 홀수는 2의 배수가 아니다. 그렇기에 if문을 통해 n을 2로 나눈 나머지의 값에 따라, 각 조건에 따른 합을 계산하면 된다.

 

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    
    if (n % 2 == 1)
    {
        for (int i = 1; i <= n; i += 2)
            answer += i;
    }
    else
    {
        for (int i = 2; i <= n; i += 2)
            answer += (i * i); 	// i * i는 제곱을 의미
    }
    
    return answer;
}

 


 

4. 조건 문자엹

https://school.programmers.co.kr/learn/courses/30/lessons/181934

 

프로그래머스

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

programmers.co.kr

 

 이 문제에서 가능한 경우는 아래의 4가지이다.

  • ineq: ">", eq: "=" -> n >= m인지 판별
  • ineq: ">", eq: "!" -> n > m인지 판별
  • ineq: "<", eq: "=" -> n <= m인지 판별
  • ineq: "<", eq: "!" -> n < m인지 판별

이를 if문을 이용해 각 경우를 구분하여 답을 구한다.

 

#include <string>
#include <vector>

using namespace std;

int solution(string ineq, string eq, int n, int m) {
    int answer = 0;
    
    if (ineq == ">")
    {
        if (eq == "=")
            answer = n >= m;
        else if (eq == "!")
            answer = n > m;
    }
    else if (ineq == "<")
    {
        if (eq == "=")
            answer = n <= m;
        else if (eq == "!")
            answer = n < m;
    }
    
    return answer;
}

 


 

5. flag에 따라 다른 값 반환하기

https://school.programmers.co.kr/learn/courses/30/lessons/181933

 

프로그래머스

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

programmers.co.kr

 

 만약 주어진 flag가 true일 경우에는 a + b, flag가 false일 경우에는 a - b를 반환한다.

 

#include <string>
#include <vector>

using namespace std;

int solution(int a, int b, bool flag) {
    int answer = 0;
    
    if (flag == true)
        answer = a + b;
    else
        answer = a - b;
    
    return answer;
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함