Java | 한달이 고정일자인 날짜나 시간은 가장 작은 단위로 관리하는 것이 편하다
Java | int형의 범위가 [-21억, 21억] 이고, 최대 9글자인 숫자로 구성된 문자열만 int형으로 변환이 가능하다
Java | 10진수를 원하는 진수로 바꿀 때, "Integer.to[Binary, Octal, Hex]String(바꿀 정수)" 메소드를 사용한다
Java | int형을 String으로 바꾸는 연산에는 숫자+"" 보다 String.valueOf(숫자)가 훨씬 효율적인 방법이다
Java | contains연산을 자주 써야 한다면 배열로 저장하는 것이 좋고, 비연속적인 극과 극의 값이 이산적으로 많지 않으면 Map을 사용하는 것이 좋다
Java | 람다식을 변형할 수 있도록 여러 방법으로 짜보자
Java | 자료형간의 변환 방법은 알아둬야 한다
Java | 자료구조를 선택할 때 해당 문제에서 최적인지 검증하는 습관이 필요하다
Java | 알파벳은 26개 이고, 변환할때는 -'A' 또는 -'a'로 한다
Java | String -> char[]는 문자열.toCharArray()로, char[] -> String은 String.valueOf(문자 배열)로 할 수 있다.
Java | 만약 Map에서 value 값으로 null을 허용하지 않는다면, map.containskey()와 map.get() 둘 다 맵의 특정 key 유무를 알아낼 수 있다. 중복 연산을 하지 않도록 조심하자
Java | 규칙이 애매한 나열의 경우, 때때로 그대로 열거해서 저장하는 것이 나은 경우도 있다.
Java | 최솟값 최댓값을 구할 때, Math의 max()와 min()을 쓰는 것 가독성에 좋다.
Java | 문자열 합치기 연산을 해야할 경우 StringBuilder를 쓰는 것이 효율적이다.
Java | 정수형으로 나누기 연산을 할 경우, 소숫점 아래가 버려지는 경우가 생길 수 있으므로 잘 고려해야 한다.
Java | 문제를 읽을 때 당연히 n은 m보다 커야한다고 짐작하지 말고, 제한사항으로 따져보는 것이 오류를 줄이는 길이다.
Java | 실제 실행결과로 오류가 있는지를 검증하지 말고, 여러 가능성을 생각해봐야 빠르게 오류를 막을 수 있다.
Java
Java | 에라토스테네스의 체를 구현할 때, 루트 범위까지만 봐도 소수를 전부 구분할 수 있다.
Java | 에라토스테네스의 체를 구현할 때, 루트 범위까지만 봐도 소수를 전부 구분할 수 있다.
Java |
Java | 반례를 찾을 때 문제 조건들을 자세히 따져보는 것이 중요하다
Java | 정규식을 이용해 패턴을 추출하여 단순하게 구현하는 방식도 있다.
Java | 약수 개수를 구하는 방법도 소수를 구하는 방법과 유사하게 구할 수 있다.
Java | 어떤 값이 속하는지를 판단할 땐 Set이 편리하다.
Java | 숫자의 범위가 상당히 크다면 long으로도 연산이 불가능할 수 있다.
Java |
Java | 문제에서 따로 기재된 조건을 분석해보면 반례를 좀더 빠르게 찾을 수 있다.
Java | 중복을 같이 저장해야한다면, Set보다는 Map을 선택해야 한다.
Java | 배열의 인덱스를 증가할 때 크기보다 더 커질 경우가 있는지를 봐야한다.
Java |
Java | 구현문제에서 각 기능별로 메뉴판처럼 함수를 만들어 놓는 것이 가독성에 좋다.
Java | StringBuilder는 equals로 직접 비교가 불가능하고, toString()으로 변환 후 비교해야한다.
Java | Stack 라이브러리보다 배열과 포인터변수로 구현하는 것이 훨씬 효율적이다. (덮어쓰기 가능)
Java | 장애물을 'X'라 표시하고 'X'구역은 가지 못한다고 할 때 [!='X' : 'X'가 아니다]로 주는 것이 낫다. 다른 마크와 같아야한다고 둘 경우, 또 다른 마크가 존재한다면 틀린 답이 된다.
Java | Map의 메소드 중 하나인 values()는 순서를 보장해서 가져오지 않으므로 주의해야 한다.
Java
Java | 표로 계산할 때 x,y좌표가 축을 기준으로 하는지 칸을 기준으로 하는지를 고려해야 한다.
Java | 반복되는 부분이 많을 경우, 사용자 정의 함수로 구현해서 가독성을 높이는 것이 좋은 방법이다.
Java | 전체를 순회하지 않고 일부만 순회해도 전체를 순회한 효율을 낼 수 있는 문제들도 있다.
Java | 길이로 연산할때, 0번째 인덱스로만 해도 되는지, 그때그때 새롭게 길이를 가져와야하는지 고려해야 한다.
Java
Java
Java
Java
Java
Java
Java | 문자형 변수에 문자끼리 계산한 결과 값을 넣고 출력하는 것과 바로 출력하는 경우는 다른 결과를 도출할 수도 있다.
Java | 스택에 넣고 값을 비교할때는 해당 스택의 조건만 따지는 것이 아니라, 실행이 끝난 후에 스택에 남은 값도 생각해보아야 한다.
Java | Integer.toString(문자열, 진수) 메소드를 이용해 문자열을 빠르게 원하는 진수로 변환 가능하다.
Java | 자료구조를 가져와 단순하게 구현한 것보다 가능한 구현으로 해결하는 게 더 효율적인 연산이 될 때가 있다.
Java | 나머지 연산을 하여 답을 리턴해야하는 문제는 값의 범위를 넘어가는 순간이 없는지와 종료조건이 정확한지 확인해야 한다.
Java | 스택을 다룰 때 pointer가 어느 자리에 위치해야하는지를 잘 확인해야 한다.
Java |
Java |
Java
Java | 입력 변수의 크기가 크다면, 규칙을 찾아 연산 횟수를 줄여야 한다.