레이블이 etc인 게시물을 표시합니다. 모든 게시물 표시
레이블이 etc인 게시물을 표시합니다. 모든 게시물 표시

2018년 9월 11일 화요일

C, switch, case 문에서 || 연산자

백준 11723 집합 문제를 풀다가
swtich case문을 사용하면서 ||(or)연산자를 사용했는데

아래와 같이...
case 'a' || 'b':
내가 의도한 바는 'a' 또는 'b'인 경우에 그 케이스 문 안의 코드를 실행하는 것이었는데, 'a'가 오든 'b'가 오든 해당 case문 안으로 들어가지 않길래 찾아봤더니...

https://stackoverflow.com/questions/13226124/switch-case-with-logical-operator-in-c

저 경우에는 'a' || 'b'가 계산이 되어 True(1) 값으로 설정되기 때문에, 즉 case 1: 이 되기 때문에 'a', 'b'값 모두 통과를 할 수 없게 되는 것 같다.

----
아 그리고, switch문 안에서 case를 벗어난 부분에 코드를 입력하면 내려가면서 실행될 줄 알았는데 그렇지 않다... case문 밖에 있는 코드는 실행되지 않는다.
swtich(x) {
  case 1:
    ......
    break;

  (x가 1이 아닌 경우에도 이 부분에 입력된 코드는 실행되지 않음)

  case 2:
    .......
    break;
}

2018년 7월 19일 목요일

STL queue에서 pop에 리턴값이 없는 이유

백준 슬랙에서 누군가 왜 STL queue에서 pop을 쓰면 pop만되고, pop된 값이 리턴되지 않는지 질문했는데, 그에 대한 답으로 아래의 링크를 올려주셨다.

https://stackoverflow.com/questions/25035691/why-doesnt-stdqueuepop-return-value

읽어봤는데, 영어라 확실히 이해한 것 같지는 않지만...
내가 이해한 것을 정리해보면,

"pop을 쓸 때, queue에 있는 해당 값을 제거하게 되기 때문에 해당 값을 리턴해주기 위해서는 해당 값의 참조값(주소값)을 이용해 리턴해줄 수 없고, 따로 값을 저장하고 리턴해야 하는 return by value를 사용해야 하고 이는 비효율적이다. "
라는 의견도 있었고,

하지만 진짜 이유는... 만약 해당 값을 리턴하게 된다면, 리턴하기 전에 해당 엘리먼트를 지워야하기 때문에, 이미 어디에도 존재하지 않는 값을 리턴하는 것이라... exception으로부터 안전하지 못하기 때문에... exception safety를 위해서라고 한다.

사실 정확히 이해는 안 되었지만, exception부분은 C++과 STL에 대해서 좀 공부를 해야 이해할 수 있을 것 같다. C++에 대해서 공부해보고 다시 생각해 봐야겠다.

2016년 5월 4일 수요일

오늘따라 알고리즘 공부가...

오늘따라 알고리즘 공부가 음... 좀 그렇다.
하지만... 그렇다고 포기할 수는 없고...
그렇다고 하자니 능률이.. 의욕이...떨어지는 것 같다.

그렇다면... 여태 미뤄뒀던.. 웹이나 해킹공부를 해볼까...
그래서 진짜 여태 몇년을 미뤄온 bof를 오늘 끝내볼까 한다.(끝낼 수 있을진 모르겠지만...)

해킹공부 이제 시작이다!!
에라이 웹해킹도 그냥 webhacking.kr로 찾아보면서, codecademy도 하면서 무작정 시작해보자.

2016년 3월 27일 일요일

크로스핏

크로스핏

1. 주먹쥐고 팔굽혀펴기 20
2. 뒷(옆)차기 왼 10 오 10
3. 아령 15키로 어깨에서 머리 위로 올렸다 내리기 20
4. 버피테스트 20

==>1~4를 쉬지 않고 5세트 반복하면 끝.
-> 오늘 해보니까 1세트만 했는데도 엄청 힘들다...
일단 오늘은 첫날이고 밤도 늦어서 1세트로 끝내고,
다음부터는 3세트로 하고
기록이 단축이 된다 싶으면 세트를 늘리든가, 개수를 늘리든가, 추가를 하든가 해서 하자.


항상 정자세로 빠르게 하려고 노력하자.
할 때마다 시간 측정하고
기록 향상을 위해 노력해보자. 

2016년 3월 26일 토요일

공부할 것들

1. 영어(duolingo, Teps, Toeic 단어 및 문제 풀기-Hackers site에서 매일)
2. 알고리즘
3. Buffer Overflow, Linux Kernel
4. 운동(크로스핏)


1. 영어
duolingo 매일 30xp
Hackers site에서 Teps, Toeic 1일치 문제 풀기
Hackers site에서 Teps 5일치 단어 테스트
Hackers site에서 Teps무료 적중 예상 특강 듣기(일주일에 최소 3번 문제 풀고 듣기)

2. 알고리즘
백준 + JM book

3. Buffer Overflow, Linux Kernel
Hacker school site에서 Buffer Overflow 기초 공부
달고나님의 Buffer Overflow 문서로 공부
그 외 블로그 및 Hacker school 참조해서 Lord of BOF연습
+ Web Hacking 공부
해킹대회 문제 및 풀이 찾아보고 공부

4. 운동(크로스핏)
3가지 운동을 15분간 쉬지 않고 반복해서 일주일에 최소 3번
일주일에 최소 2번은 턱걸이, 평행봉, 계단 오르기