본문 바로가기
프로그래밍/코딩테스트

[프로그래머스] 1레벨 쉬운 문제 여러개

by Nessie! 2023. 5. 30.

0레벨은 얼른 털어버리고 1레벨로 진입했다!

정답률 높은 순으로 쉬운 것 부터 차근차근 풀고 있는 중이라 아직은 풀만하당..,, 

 

자릿수 더하기

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

 

프로그래머스

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

programmers.co.kr

#include <iostream>
#include <string>

using namespace std;
int solution(int n)
{
    int answer = 0;

    string number = to_string(n);

    for (int i = 0; i < number.size(); i++)
        answer += ((int) number.at(i)) - '0';        //0의 아스키코드

    return answer;
}

string의 at함수는 char형으로 return되기 때문에, 0의 아스키값을 빼줘서 각 자리의 숫자를 구해 더해줬다.

int형에서 char형을 빼면 char형은 애초에 정수로 처리되기 때문에, '0' 의 아스키코드인 정수 48이 빼지는 결과를 얻을 수 있다. 

 

 

평균 구하기

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

 

프로그래머스

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

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

double solution(vector<int> arr) 
{
    double answer = 0;

    for (int i = 0; i < arr.size(); i++)
        answer += arr[i];

    return answer / arr.size();
}

 

 

약수의 합

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

 

프로그래머스

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

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

int solution(int n) 
{
    int answer = 0;

    for (int i = 1; i <= n; i++)
    {
        if (n % i == 0)
            answer += i;
    }

    return answer;
}

 

 

x만큼 간격이 있는 n개의 숫자

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

 

프로그래머스

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

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

vector<long long> solution(int x, int n) 
{
    vector<long long> answer;
    
    for(int i = 1; i <= n; i++)
        answer.push_back(x * i);
    
    return answer;
}

 

 

나머지가 1이 되는 수 찾기

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

 

프로그래머스

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

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int i = 1;
    
    while (n % i != 1)
        i++;
    
    return i;
}

 

짝수와 홀수

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

 

프로그래머스

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

programmers.co.kr

#include <string>
#include <vector>

using namespace std;

string solution(int num) 
{
    if(num % 2 == 0)
        return "Even";
    else
        return "Odd";
}

 

& 비트연산을 이용해 삼항연산자로 간략하게 작성하면 아래와 같다. 

string solution(int num) {
    return num & 1 ? "Odd" : "Even";
}

비트 AND 연산자(&)는 논리 AND 연산자(&&)와 비슷하게 동작한다. 그러나 bool 값을 평가하는 대신 각 비트에 적용된다. 
예를 들어, 식 5 | 6은 binary에서 0101 | 0110로 적용된다.

비트 AND 연산자(&)는 두 비트 모두 1인 경우에만 1로 평가된다.

0 1 0 1 // 5
0 1 1 0 // 6
--------
0 1 0 0 // 4

이진법은 2의 0제곱 부터 시작하기 때문에, 2의 0제곱의 자리가 0이나 1이냐에 따라 홀수, 짝수 판별이 가능하다.
또한 비트 연산을 이용하면, 해당 결과값의 최하위 비트를 return 하기 때문에 무조건 0이나 1이 반환되어 참/거짓으로 구분되기 때문에 삼항연산자의 조건으로 쓸 수 있다.

 

 

출처: https://boycoding.tistory.com/163

 

C++ 03.07 - 비트 단위 연산자 (Bitwise operators)

03.07 - 비트 단위 연산자 (Bitwise operators) 비트 단위(bitwise) 연산자는 사용하기 어렵고 까다롭다. 비트 단위 연산자는 변수 내의 비트(bit)를 조작한다.과거에 메모리는 매우 비싸서 컴퓨터는 메모리

boycoding.tistory.com

 

댓글