TIL (2022.02.24)

aylee·2022년 2월 24일
0

TIL

목록 보기
15/47

Today I Learnt : (C++ 기준)

(1) 공백있는 문자열 받기


#include <string>

1. 변수 1개만 받을 경우
string str;
getline(cin,str);

2. 변수 2개 이상
string str,temp;
cin>>str;
cin.ignore();
getline(cin,temp);

cin 입력 다음에 cin.ignore()를 쓴 이유
: 버퍼에 '\n'이 남아, 전 버퍼에 남은 공백 및 개행문자를 포함해서 입력받기 때문에 버퍼를 지워주는 작업이 필요하다.

getline()의 경우는 '\n' 문자를 버퍼에 포함시키지 않기 때문에 버퍼를 비워줄 필요가 없다. 

: 가까운 노드부터 먼 노드까지, 너비를 우선으로 방문한다. 그래프의 최단 경로 문제에 많이 사용함!

아아주 간단한 구현 : queue를 사용해서!

int dx[4]={1,-1,0,0};

void bfs(int x){
    queue<int> que;
    que.push(x);
    checked[x]=true;

    while(!que.empty()){
        int currentPos = que.front();
        que.pop();
        
        for(int i=0;i<4;i++){
            int nx = currentPos+dx[i]
            if(!checked[nx]){
                checked[nx]=true;
                que.push(nx);
            }
        }
    }
}

(3) for 문의 작동방식

for (초기화식 ; 조건식 ; 증감식) {
실행할 내용
}

(4) for 문으로 2차원 배열 만들기

자료형 배열이름 [세로][가로]

일반적으로는 [가로][세로] 인데 2차원 배열 만들시에는 [세로][가로]

profile
미래를 구체화 하는 중

0개의 댓글