부트캠프 강의
1. 문제
- char c2 = c1++; 가 왜 컴파일 에러가 나지 않을까?
- int 하위 타입은 연산될 때 int로 변환되는 것으로 알고있었음
- 따라서, c2에 담으려면 (char)로 형변환을 해줘야할 것 같다고 생각함
2. 시도
- 다양한 케이스를 시도해보자
3. 해결
- c1++;이 컴파일 에러가 나지 않는 이유
: c1++는 형변환 없이 c1에 있는 값을 1 증가시키기 때문임
- char c2 = c1 + '1'은 컴파일 에러
: 앞서 생각한 것과 같이 c1과 '1' 모두 int로 변환돼서 연산되기 때문
- char c2 = 'a' + 1은 컴파일 에러가 나지 않음
: 리터럴 간 연산은 컴파일 시점에 미리 계산돼기 때문에 c2 = 'b'로 바뀜
4. 알게된 점
- c1++과 같은 단한연산자는 형변환이 일어나지 않음
- 내가 기억하고 있는 int 아래 형은 모두 int로 변환돼서 연산됨(잘 기억하고 있었다)
- 리터럴 간 연산은 컴파일 시점에 미리 계산됨
코테준비
1. 백준 10800 - 컬러볼
: 생각한 방향에서 시간복잡도를 계산하고 정확하게 구현하자. 그러면 풀 수 있다!!!
2. 백준 1826 - 연료 채우기
: 왜 헤맸을까? 사실 굉장히 간단한 로직인 '갈 수 있는 주유소 중에서 가장 많은 주유를 할 수 있는 곳을 선택한다'가 전부인데. 아직은 이런 문제가 나왔을 때 이러한 풀이법을 처음 접해서 그런것이라고 생각하자. 너무 조급하게 생각하지말고 천천히 익혀나가보자
오늘 하루고 고생 많았다!!!
'TIL(Today I Learned)' 카테고리의 다른 글
2023.07.25 (0) | 2023.07.25 |
---|---|
2023.07.24 (0) | 2023.07.25 |
2023.07.20 (0) | 2023.07.20 |
2023.07.19 (0) | 2023.07.19 |
2023.07.18 (0) | 2023.07.18 |