jc.jang

24일 - 나는 왜 이해가 가지 않을까? 본문

예전글/2017-7월

24일 - 나는 왜 이해가 가지 않을까?

jangstory 2017. 7. 24. 23:44

나는 컴퓨터공학과 학생이다. 컴퓨터공학과에 간 이유나 뭐 그런 자잘한 얘기들은 접어두고, 현재는 4학년이다. 1학년때 대학교를 어떻게 다녔는지 모를 정도로 학점이 안 좋았다. 단순히 학점만 낮은게 아니라 과에 관해 아는 것이 전혀 없었다.  그렇게 도망치듯 1학년을 마치고 군입대를 했다. 군대에서도 C++책을 갖고 보긴했지만 보면 까먹고 보면 까먹고 그랬다. 내가 필요로 하지 않아서 눈에 안 들어 오는걸까... 보려고 보려고 노력했지만 잘 안 맞았다. 이쯤되면 알레르기 수준으로 반응한 것 같다. 그렇게 시간은 흐르고 학년은 올라가고 어느덧 4학년이 되었다. 많은 수업을 통해 지식을 배우는 것 보다는 너무 어려운 수업의 연속이었다.



남들에게 보이게 티내지는 않지만 꼴에 자존심은 있어서 남들 하는건 다하고 싶고, 그걸 할 만한 능력은 안되니 이게 여간 고통스러운게 아니다. 오늘도 C++ LIST STL을 이용해서 문제를 푸는데 이해가 안간다. 뭐가 이해가 안 가는지 답답해서 글을 쓰게 되었다. 문제를 어떻게 풀지는 대충 알겠더라. 그래 그걸 손으로도 이렇게 이렇게 해서 풀겠어. 근데 이걸 코드로 작성을 못하겠다 이 말이다. 흔히 자소서에 쓰는 '알고리즘수업과 문제해결기법 수업을 통해서 저의 생각을 코드로 구현 blah blah~~' 는 다 개소린건가. 내가 그동안 공부를 안한건 또 아니다.



auto 는 변수의 타입을 컴파일러가 알아서 할당하는 자료형이다. 그래서 auto it = blist.begin() 하면 blist라는 리스트에 첫번째 원소가 it에 저장되는거지. 근데 이게 fair 니까 second 접근하려면 it.second가 아니라 it->second로 해야댐 pair아닐땐 그냥 it.second 로 접근함.

int step = it->first;

if( step>0) {

auto temp = it;

++temp;

if(temp == blist.end()) {

temp = blist.begin();

}

blist.erase(it);

for(int j=1; j<step; j++) {

++it;

if(it==blist.end()) {

it = blist.begin();

}



blist.erase(it); 하면 it의 위치에 있는게 지워진다. ㅇㅋㅇㅋ

그래서 그거 지우고 인덱스 1부터시작해서 step 만큼 옆으로 이동하는데 만약에 이동했을때 그게 end 랑 같으면 begin으로 바꾼다 그 이유는 환형이니까 저렇게 해준것.



내일 다시 또 보자 문법을 이해 못한거니까 그래.

'예전글 > 2017-7월' 카테고리의 다른 글

27일 - 번거로움  (0) 2017.07.27
25일 - boj 1406번 마우스커서  (0) 2017.07.25
22일 - 파마  (0) 2017.07.24
20일 - 경복궁 야간 특별관람  (0) 2017.07.22
19일 - 119  (2) 2017.07.20
Comments