자릿수가 엄청 큰 수를 받을 때는 BigInteger를 활용하여야 한다.BigInteger를 활용하여 덧셈하는 법 - n.add(m)BigInteger를 활용하여 뺄셈하는 법 - n.subtract)(m)BigInteger를 활용하여 곱셉하는 법 - n.multiply
BigInteger 활용!!
문자형 char형으로 입력 받는 것이 아니라, String 형태로 받아야 한다.int형 tmp를 만들어, String in의 i번째 문자를 정수형으로 만들어 준다.만일 tmp가 'A'~'Z' 사이에 있다면, out에 tmp + 32를 char형으로 만들어 추가해 준다.
String의 동일성 확인 방법 - StringA.equals("StringB")
hasNext()의 반환 값 - boolean(True or False)즉, while(sc.hasNext())를 사용하면, EOF를 입력할 때까지 입력을 받는다.
중복 for문의 활용
BigInteger문제이다.BigInteger를 숫자 2로 나누어 주기 위해서는 .divide(BigInteger.valueOf(2))를 사용해야한다.처음에는 a와 b의 입력은 받은 후 c와 d에 각각 a를 나눈 값과 b를 나눈 값을 넣은 다음, c와d를 더한 값과,
.charAt(index) - String으로 저장된 문자열 중에서 한 글자만 선택해서 char형으로 바꾸어 주는 역할을 한다.
.charAt(index)를 사용하여 String의 첫번째 문자와 마지막 문자를 각각 입력 받아 String b에 넣어 출력합니다.
sc.next().charAt(0)을 사용하여 a에 char형을 받음.(int)a를 사용하여 아스키 숫자를 출력.
sc.next() - 공백을 입력 받을 수 없음.sc.nextLine() - 공백을 넣어 Enter를 기준으로 한 줄을 입력 받을 수 있음
BigInteger를 사용하려고 했으나, 백준 채점 결과 시간 초과라는 메시지가 떴다.결국, String으로 입력 받은 num을 숫자로 변형 받아서 이를 20000303으로 나누어 답을 도출하였다.
BigInteger로 주어진 수를 비교하는 방법num1.compareTo(num2)를 사용하여 비교.num1이 더 클 경우 num1.compareTo(num2)는 1 반환num2가 더 클 경우 num1.compareTo(num2)는 -1 반환두 수의 크기가 같을 경우
시간 복잡도를 구하는 문제.위 코드를 보면 알 수 있듯이, 입력 받은 n을 반으로 나눈 값을 i에 저장한 후, A배열의 i번째를 반환하는 코드이다.위 코드는 어떤 수를 입력하더라도 한번만 반복이 되기 때문에, 코드의 수행 횟수를 출력하는 첫번째 줄에는 무조건 1을 출력
위 코드로 제출하면 시간 초과가 나와 오답으로 처리 된다.팩토리얼을 반으로 나누어 계산한 후에 곱하는 방법으로 처리해야 시간 초과가 나오지 않는다. 팩토리얼을 반으로 나누어 계산한 후에 곱하는 방법으로 짠 코드는 다음과 같습니다.
처음 코드를 짤 때, 아래 코드처럼만 짜면 답이 나올 것이라고 생각하였다.당당하게 제출하였으나 대차게 틀렸다. 다시 문제를 읽어보니, 그러한 합과 차를 갖는 경기 결과가 없다면 -1을 출력하라는 조건이 있다는 것을 알게 되었다.다시 위 코드를 제출하였으나, 다시 틀렸다
대문자를 소문자로 변경하는 방법: .toLowerCase();소문자를 대문자로 변경하는 방법: .toUpperCase();
가의 아스키 코드 == 44032.한글도 아스키 코드로 표현할 수 있다는 것을 알게 되었다.
BufferedReader를 쓰기 위해서는import java.io.BufferedReader;import java.io.InputStreamReader; 선언이 필요하다.BufferedReader bf = new BufferedReader(new InputStream
BufferedWriter 쓸 때, BufferedReader 쓸 때와 같이import java.io.BufferedWriter;와import java.io.OutputStreamWriter;가 필요하다.예외 처리 위해서 import.java.io.IOException
제곱근을 구하는 방법 - Math.sqrt(a);
.split(" : ")을 사용하여 시, 분, 초를 분리하여 스트링 형태의 배열에 차례로 받음.
처음에 문제 풀 때, PI에 대한 제한이 전혀 없어서 고민하였다.결국 검색을 통하여 Math.PI를 사용하여 PI를 사용 할 수 있다는 것을 알게 되었다.
문제에 현혹되어 불필요한 코드를 짜지 말고, 필요한 코드만 구현하면 된다는 것을 생각하자!
진화에 필요한 사탕의 개수를 이미 가지고 있을 경우를 생각하지 못하였었다!그 경우를 생각하여 if(c >= e)인 경우를 추가하였다.
제곱근을 구하는 방법 - Math.sqrt(n);
StringTokenizer 쓰기 위하여 import java.util.StringTokenizer;필요st.nextToken()을 활용하여 입력 받는다.
버퍼 비우기 - sc.nextLine();
두 코드 전부 맞은 코드이다.
HashSet을 사용하려면 import java.util.HashSet;을 사용하여야 한다.또한, HashSet<형태> 이름 = new HashSet<형태>();을 선언하여야 사용 할 수 있다.HashSet에 추가하는 코드 .add(값)을 사용하면, 중복된
버블 소트로도 시간 초과가 났고, 퀵 소트로도 시간 초과가 났다.다른 방법인 array를 사용하여 쉽게 정렬을 마칠 수 있었다.정렬 후에, System.out.println();을 사용하여 출력하였는데, 다시 시간 초과가 났다.StringBuilder sb = new
푸는데 조금 어려움이 있었던 문제입니다.처음에는 자릿수가 없으면 즉, null이면 아스키 숫자를 더해주는 total에 0을 더해주면 될 것이라고 생각했습니다.따라서 처음에 짰던 코드는 다음과 같습니다.이렇게 코드를 짜니, 자릿수가 같은 수들만 넣으면 잘 돌아갔으나, 자
정수 입력 받고, nextLine()을 활용하여 입력을 받아야 할 경우, nextLine()을 입력 받기 전에 한번 더 써서 버퍼를 비워주어야 한다.
upper.charAt(i)는 char형이다.a는 String 형이므로, upper.charAt(i)의 형(char)과 똑같이 변형 시켜 주어야 한다.
Scanner 썼을 경우 에러 나는 케이스가 있는 것 같다. BufferedReader를 사용해보자!import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;publ