본문 바로가기

알고리즘/Jungol

[Java] 정올기초다지기 연산자 자가진단01~08

안녕하세요.

오늘도 정올에서 출제된 문제를 풀이했습니다.


세개의 변수를 주고 합계와 평균을 출력하는 간단한 문제였습니다.

 

 

두개의 값을 입력받고 첫 번째는 100을 증가 a+= 100;

두 번째는 10으로 나눈 값 b%= 10;

을 이용하여 차례대로 출력하여 별문제 없이 풀이 가능했습니다.

 

이문제를 풀면서 1차멘붕이,,,,

후치 증가와 전치 증가라는 개념을 여기서 처음 알게 되었습니다.

배운 내용에 있지 않았기에,,, 검색을 통하여 찾았으며,

전치 증가는 

b = ++a; // b의 값이 1일 때 b = 2 a = 2 가 되는 값을 얻을 수 있습니다.

후치 증가는

b = a++; // b의 값이 1일때 b = 1 a =2 가 되는 값을 얻을 수 있습니다.

 

전치 증가는 b의 값도 올라가고 a의 값도 올라가는 것이지만,

후치 증가는 a의 값이 먼저 올라가고 b의 값이 올라가는 개념입니다. ,,, 아마도(?)

 

정확한 개념은 머리로는 이해됐지만 말로 풀지는 못하겠습니다...

 

 

위 문제와 비슷한 유형의 문제로 전치 감소, 후치 증가를 사용하여 

쉽게 출력할 수 있는 문제입니다.

 

 

자가진단 6문제를 풀면서 알게 된 사실이지만,,,,

이렇게 if문을 쓰지 않아도

boolean을 사용하여 문제를 풀 수 있다는 사실을 알게 되었습니다.

if문을 쓰게 되어 답이 길게 나왔네요...

 

 

위에서 설명한 바와 같이 boolean을 사용하여 result라는 변수를 생성하고,

4가지의 경우의 수를 만들어 

그 결괏값에 맞게 출력하여 줬습니다.

위의 5번 문제보다 쉽고 가볍게 만들 수 있는 방법이었습니다.

 

 

잠시 멘붕이 왔던 문제 인대요..

 

힌트를 통하여 c라는 변수에 a가 0이 아닐 때의 값과,

d라는 변수에 b가 0이 아닐때의 값을 넣어줌으로

!= (not equal)의 뜻입니다.

 

출력을 c와 d가 모두 일치할 때 , 그리고 c 또는 d일 때의 경우 두 가지를 넣어줌으로

결괏값을 출력할 수 있었습니다.

 

 

이문제는 아직 100% 이해가 되지 않아 코드를 보며 다시 이해, 연구 중입니다.

 

아직 실력이 부족하여 연산자에서부터 막혔습니다...

 

좀 더 공부하여 연산자를 확실하게 짚고 넘어가고 다음 진도를 나가도록 하겠습니다.


 

 

더보기

※현재 저는 Eclipse를 접하게 된 지 얼마 되지 않았으며,

알고 있는 지식이 많지 않아 잘못된 내용을 적어 놓았을 수도 있습니다...

제가 좀 더 지났을 때 기초를 어떻게 배웠었고 어떤 과정을 지나왔는지 보기 위해 포스팅하는 것이며,

저 같은 초보분들이 저와 같은 비슷한 속도로 공부를 하며 함께 했으면 하는 마음에 포스팅하는 것입니다.

잘못된 부분이 있어 지적해주신다면 달게 받도록 하겠습니다.

 

앞으로도 꾸준히 포스팅하겠습니다.