백준 9498
·
dev/java
10점마다 구간을 나눠서 계산하는 문제이다. 사실 이렇게 짜는 것보다 60보다 작은 값은 F, 그 중에서 70보다 작은 값은 D 이런 식으로 코드를 짜면 연산량이 줄어들어 효율적으로 코드를 짤 수 있다.
백준 1330
·
dev/java
대소 관계에 따라 출력을 요하는 문제이다. 문제를 소개하기 앞서 분기와 관련된 글을 적어보자면 cpu 제작사는 자신들이 만든 cpu에 명령어를 집어넣게 되는데 개발자들이 low레벨까지 접근하여 개발을 하는 경우는 점차 줄고 있다. 너무나도 복잡해진 탓도 있고 메모리를 직접 건드리는 것이 보안에 문제가 생길수도 있기 때문인데 그러한 이유 때문에 cpu제작사들은 컴파일러를 같이 제공한다. 하지만 컴파일러가 만드는 하이레벨의 코드는 개발자가 만드는 코드와 괴리가 클 수밖에 없다. 그렇기에 cpu제작사들은 똑똑한 컴파일러를 만들기 위해 많은 연구를 진행했다. 그 결과 나온 것들이 분기예측, 슈퍼스칼라, 등의 것들이다. 컴퓨터가 돌아갈 때 가장 문제가 되는 것이 cpu로 data를 fetch하는 속도인데 분기를 ..
백준 2588
·
dev/java
문제 풀이에 사용할 변수를 추가적으로 3를 만들면 풀이가 편해지긴 하다만, 메모리 할당과 참조 시간을 줄이기 위해 사용하지 않게 되면 조금 생각하고 풀어야 한다. mod연산을 적재적소에 활용하면 간단하게 풀 수 있다.
백준 1000, 1001, 10998, 1008, 10869, 10430
·
dev/java
사칙연산이다. 자바의 경우 자바에서 제공하는 java.util의 패키지에서 Scanner클래스를 import하여 사용한다. Scanner객체를 생성한 후 값을 입력받는 방식으로 사용하는데 여기서 System.in이란 화면에서 입력을 받겠다는 의미이다. 1008의 풀이가 의아할 수 있는데 문제의 조건 중에서 상대오차, 절대오차에 관한 조건을 주었기에 일반적으로 사용하는 float을 사용하면 통과할 수 없고 double형을 사용해야 통과할 수 있게 된다. 또한, nextInt()함수의 경우 띄어쓰기로 값을 받기 때문에 4 6같은 형식으로 들어오는 데이터를 각각 입력받을 수 있다. 전에서 말했던 것과 같이 메모리 참조를 하게 되면 불필요한 시간과 메모리를 낭비하게 되므로 하지 않는 것이 좋다. c=a+b;Sy..
백준 10171, 10172
·
dev/java
문자열을 다루는 간단한 문제이다. 특수문자의 경우 백슬래시(혹은 원화\)를 사용하여 표시를 해줘야 한다. 문자열 처리의 경우 간단하지만 나중에 한번쯤은 사용하게되므로 기억해두면 좋다.
백준 10718
·
dev/java
강한친구 대한육군이라는 문제를 두 번 출력하면 되는 간단한 문제이다. 코드를 간편하게 하기 위해 printf()함수가 아닌 println()을 쓰면 코드가 짧아진다. for문을 사용해서 두 번 돌릴 수도 있겠지만 반복문을 사용하는 것은 컴퓨터 구조적인 관점에서 보았을 때 메모리에 값을 할당하고(int i=0) 참조하는(i
백준 2557
·
dev/java
Hello World를 출력하라는 문제이다. 자바에는 입출력에 관련된 다양한 메소드를 지원하지만 문제에서 요구하는 조건같은 것이 없으므로 System.out.println을 써서 출력했다.