전체 글

전체 글

    [백준] 입출력과 사칙연산 - 1001번 (Python)

    https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A-B를 출력한다. 코드 정답 a, b = map(int, input().split()) c = a - b print(c) 해설 1행 : 변수 a와 b를 만들어낸 후 정수형으로 값을 받는다. map 함수는 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해서 사용되며 여러 개의 데이터를 담고 있는 list나 tuple을 대상으로 주로 사용한다. 2행 ..

    [백준] 입출력과 사칙연산 - 1000번 (Python)

    https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 코드 정답 a, b = map(int, input().split()) c = a + b print(c) 해설 1행 : 변수 a와 b를 만들어낸 후 정수형으로 값을 받는다. map 함수는 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해서 사용되며 여러 개의 데이터를 담고 있는 list나 tuple을 대상으로 주로 사용한다. 2행 ..

    [백준] 입출력과 사칙연산 - 2557번 (Python)

    https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 문제 Hello World!를 출력하시오. 코드 정답 print("Hello World!") 해설 print 구문은 출력하라는 명령어이며 " " 는 문자(문자열)을 의미한다. 즉, Hello World! 라는 문자열을 출력하라는 뜻이 된다.

    [Java] 연산자(비교 연산자, 논리 연산자, 비트 논리 연산자)

    1. 비교 연산자 비교 연산자는 동등(==, !=) 또는 크기(=)를 평가해서 boolean 타입인 true/false를 산출한다. 비교 연산자는 흐름 제어문인 조건문(if), 반복문(for, while) 에서 실행 흐름을 제어할 때 주로 사용된다. 구분 연산식 설명 동등 비교 피연산자1 == 피연산자2 두 피연산자의 값이 같은지를 검사 피연산자1 != 피연산자2 두 피연산자의 값이 다른지를 검사 크기 비교 피연산자1 > 피연산자2 피연산자1이 큰지를 검사 피연산자1 >= 피연산자2 피연산자1이 크거나 같은지를 검사 피연산자1

    [Java] NaN과 Infinity 처리

    나눗셈(/) 또는 나머지(%) 연산에서 좌측 피연산자가 정수이고 우측 피연산자가 0일 경우 예외(ArithmeticException)가 발생한다. 무한대의 값을 정수로 표현할 수 없기 때문이다. 더보기 int x = 5; int y = 0; int result = 5 / 0; //예외 발생 하지만 좌측 피연산자가 실수이거나 우측 피연산자가 0.0 또는 0.0f이면 예외가 발생하지 않고 연산의 결과는 Infinity(무한대) 또는 NaN(Not a Number)이 된다. 더보기 5 / 0.0 → infinity 5 % 0.0 → NaN Infinity 또는 NaN 상태에서 계속해서 연산을 수행하면 안된다. 어떤 연산을 하더라도 결과는 계속해서 Infinity와 NaN이 되므로 데이터가 엉망이 될 수 있기 ..

    [Java] 정확한 계산 하는 방법

    정수 연산으로 계산하기 산술 연산을 정확하게 계산하고 싶다면 실수 타입을 사용하지 않는 것이 좋다. 아래의 코드 예제를 살펴보자. 사과 1개를 0.1 단위의 10조각으로 보고, 그 중 7조각(0.7)을 뺀 3조각(0.3)을 result 변수에 저장하는 코드이다. package ch03.sec04; public class AccuracyExample1 { public static void main(String[] args) { //산술 연산을 실수 타입으로 한 예시 int apple = 1; double pieceUnit = 0.1; int number = 7; double result = apple - number * pieceUnit; System.out.println("사과 1개에서 남은 양: " +..

    [Java] 오버플로우와 언더플로우

    오버플로우(overflow)란 타입이 허용하는 최대값을 벗어나는 것을 말한다. 반대로 언더플로우(underflow)란 타입이 허용하는 최소값을 벗어나는 것을 말한다. 정수 타입 연산에서 오버플로우 또는 언더플로우가 발생되면 실행 에러가 발생할 것 같지만, 그렇지 않고 해당 정수 타입의 최소값 또는 최대값으로 되돌아간다. 예를 들어 byte 타입일 경우 최대값 127에서 1을 더하면 128이 되어 오버플로우가 발생하여 연산 결과는 최소값인 -128이 된다. 마찬가지로 -128에서 1을 빼면 -129가 되어 언더플로우가 발생하는데, 연산 결과는 최대값인 127이 된다. byte value = 127; value++;//value 값에 1을 더함 System.out.println(value);//-128 va..

    [Java] 부호/증감/산술 연산자

    1. 부호 연산자 부호 연산자는 변수의 부호를 유지하거나 변경하는 역할이다. 연산식 설명 + 피연산자 피연산자의 부호 유지 - 피연산자 피연산자의 부호 변경 실질적으로 + 연산자는 잘 사용되지 않고, - 연산자는 변수값의 부호를 변경할 때 사용된다. 부호 연산자를 사용할 때 주의할 점은 부호 변경 후의 타입이다. 아래 코드를 살펴보자. byte b = 100; byte result = -b;//컴파일 에러 에러가 발생한 이유는 정수 타입(byte, short, int) 연산의 결과는 int 타입이다. 부호를 변경하는 것도 연산이므로 int 타입 변수에 대입해야한다. byte b = 100; int result = -b; 2. 증감 연산자 증감 연산자(++, --)는 변수의 값을 1 증가시키거나 1 감소시..

    [Java] 키보드 입력 데이터를 변수에 저장

    시작하기에 앞서 키보드로부터 입력된 데이터를 읽는 방법은 여러 가지가 있다. 이것은 나중의 글에서 다루기로 하고 이 글에서 사용하는 것은 기업체 코딩 테스트 문제에서 주로 사용하는 방법이다. 키보드에서 입력 받는 방법 키보드로부터 입력된 데이터를 읽고 변수에 저장하는 가장 쉬운 방법은 Scanner를 사용하는 것이다. 아래는 Scanner 타입 변수를 선언하고, 대입 연산자를 사용하여 new 연산자로 생성한 Scanner 객체를 변수에 대입한다. 더보기 Scanner scanner = new Scanner(System.in); scanner 변수 선언 Scanner 객체 생성 이후 다음과 같이 scanner.nextLine()을 실행하면 키보드로 입력된 내용을 문자열로 읽고 좌측 String 변수에 저장..

    [Java] 변수 사용 범위와 콘솔로 변수값 출력

    1. 변수 사용 범위 main() 메소드 블록에는 다른 중괄호 {} 블록들이 작성될 수 있다. 조건문에 해당하는 if, 반복문에 해당하는 for, while 등이 중괄호 블록을 가질 수 있는데, 이러한 중괄호 블록 내에서 선언된 변수는 해당 중괄호 블록 내에서만 사용이 가능하고 밖에서는 사용할 수 없다. 아래는 실제 코드에서의 예시들이다. public static void main(String[] args) {//메소드 블록 int var1;//메소드 블록에서 선언 if() { int var2;//if 블록에서 선언 //변수 var1과 var2 사용 가능 } for() { int var3;//for 블록에서 선언 //변수 var1과 var3 사용 가능 } //var1 사용 가능 //var2와 var3은 ..