본문 바로가기

Programming/Codeup.kr기초100제 && 컴퓨터 이야기

[기초-삼항연산] 두 정수 입력받아 큰 수 출력하기 && 네트워크 포트

포트는 네트워크로 받은정보를 구분하기 위해 붙인 번호이다. 쉽게 말해 메신저 응용 프로그램과 인터넷 응용 프로그램이 동시에 정보가 들어왔다고 하자. 이 때 메신저로 온 정보는 1023포트에 인터넷으로 온 정보는 8200번 포트로 들어가는 식이다.

정보의 형태에 따라 특정 포트번호가 정해져 있는것은 아니지만, 세가지로 나뉠수 있다.

●잘 알려진 포트

●등록된 포트

●동적 포트

위키백과에 자세한 예시가있다.

https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

문제 설명

입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자.
(단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다.)

입력

두 정수가 공백을 두고 입력된다.
(-2147483648 ~ 2147483647)

출력

큰 값이 10진수로 출력된다.

입력 예시

123 456

출력 예시

456

도움말

3개의 요소로 이루어지는 3항(ternary) 연산자는

"조건식 ? 참일때값:거짓일때값"의 구조를 가지는 연산자(?) 이다.

마찬가지로 ? 연산의 결과는 값으로 계산된다.

예를 들어 

123>456 ? 0:1
의 계산식은 123>456 의 비교연산 결과가 거짓이므로 1로 계산된다.

예시
printf("%d", a>b ? a:b); //두 값중 큰 값으로 계산되어 출력된다.

설명하자면 
a>b 가 
참(1)이라면 (a>b ? a:b)의 결과는 a로 계산되고
거짓(0)이라면 (a>b ? a:b)의 결과는 b로 계산된다.


파이썬에서 삼항연산자는 if가들어가야 하는데 조금 다른 방식이다.

>>>print("%d" %3 if(3>5) else 5)

5

위에처럼 a= 변수1 if(조건) else 변수2 조건이 참이라면 변수1을 조건이 거짓이라면 변수2가 a에 할당되는