대외교육/코딩테스트

[프로그래머스][C++ 코딩기초트레이닝] DAY 1 ~ DAY 2

흑요석s 2023. 10. 1. 15:23

 

<문자열 돌리기>

#include <iostream>
#include <string>

using namespace std;

int main(void){
    string str;
    cin >> str;
    for(char ch : str)   //범위기반 for 문
        cout << (char)ch << endl;
    return 0;
}

 

 

범위 기반 for문(based range for)

for(type element : element_array)

 

 

 

 

 

<홀짝 구분하기>

삼항 연산자에 의한 조건문 

((조건식) ? 반환값1 : 반환값2)

 

비트 연산자로 홀짝 구분하기

(n & 1)는 비트 연산입니다. 여기서 사용된 &는 비트와 연산자(bitwise AND)입니다.

이 표현식의 주요 목적은 n의 가장 낮은 비트(least significant bit)를 확인하는 것입니다. 
특히, 홀수와 짝수를 구별하는 데 유용합니다.

(n & 1)의 결과가 1이면: n의 가장 낮은 비트는 1입니다. 이것은 n이 홀수임을 나타냅니다.
(n & 1)의 결과가 0이면: n의 가장 낮은 비트는 0입니다. 이것은 n이 짝수임을 나타냅니다.
예:

n = 5의 이진 표현은 101입니다. (5 & 1)는 1이므로 5는 홀수입니다.
n = 6의 이진 표현은 110입니다. (6 & 1)는 0이므로 6는 짝수입니다.
간단히 말해, (n & 1)는 n이 홀수인지 아닌지를 빠르게 판별하는 데 사용될 수 있는 비트 연산 트릭입니다.

 

 

 

<문자열 곂쳐쓰기>

 

1. replace 사용

#include <string>
#include <vector>

using namespace std;

string solution(string my_string, string overwrite_string, int s) {
    string answer = "";
    answer=my_string.replace(s, overwrite_string.size(), overwrite_string);
    return answer;
}

replace 함수 (문자열 일부 교체)

str.replace(시작, 바꿀 갯수, 덮어쓸 문자열)

 

 

2. 한 문자씩 바꾸기

 

#include <string>
#include <vector>

using namespace std;

string solution(string my_string, string overwrite_string, int s) {
    
    string answer = my_string;
    
    for (int i=0; i<overwrite_string.size(); i++)
    {
        answer[i+s] = overwrite_string[i];
    }
        
    return answer;
}