본문 바로가기
반응형

All205

[Codility(코딜리티)] Lesson7. Fish (100%) Lesson 7 Stacks and Queues - Fish (Java Solution) app.codility.com/programmers/lessons/7-stacks_and_queues/fish/ Fish coding task - Learn to Code - Codility N voracious fish are moving along a river. Calculate how many fish are alive. app.codility.com 문제 두 개의 배열 A, B가 주어진다 두 배열의 길이는 같다 A는 물고기가 가진 번호이고, 이 값은 distinct 하다 B는 물고기가 움직이는 방향이다 (0이면 ) 여기서 다른 방향으로 움직이는 물고기가 만나면 숫자가 더 큰 물고기가 살아남는다 결국 총 살아.. 2020. 9. 13.
[이펙티브자바 3판] ITEM13. clone 재정의는 주의해서 진행하라 이번장의 핵심은... 새로운 인터페이스를 만들 때는 절대 Cloneable을 확장해서는 안되며, 새로운 클래스도 이를 구현해서는 안 된다. final 클래스라면 Cloneable을 구현해도 위험이 크지 않지만, 성능 최적화 관점에서 검토한 후 별다른 문제가 없을 때만 드물게 허용해야 한다. 기본 원칙은 '복제 기능은 생성자와 팩토리를 이용하는 게 최고'라는 것이다. 단, 배열만은 clone 메서드 방식이 가장 깔끔하고, 이 규칙의 합당한 예외로 볼 수 있다. Cloneable 인터페이스 클래스에서 clone을 재정의 하기 위해선 해당 클래스에 Cloneable 인터페이스를 상속받아 구현해야 한다 그런데 clone 메소드는 Cloneable 인터페이스가 아닌 Object에 선언되어 있다 Cloneable .. 2020. 9. 13.
[이펙티브자바 3판] ITEM12. toString을 항상 재정의하라 이번장의 핵심은... 모든 구체 클래스에서 Object의 toString을 재정의하자 상위 클래스에서 이미 알맞게 재정의한 경우는 예외이다 toString은 해당 객체에 관한 명확하고 유용한 정보를 읽기 좋은 형태로 반환해야 한다 Object의 Default toString 메서드는 작성한 클래스의 적합한 문자열을 반환하는 경우는 거의 없다 1. Object의 Default toString 메서드는 단순히 클래스 이름@16진수 해쉬 코드를 반환한다 ex) 클래스 이름이 Jackcoding이면, Jackcoding@adbbd 2. toString의 일반 규약에 따르면 '간결하고 사람이 읽기 쉬운 형태의 유익한 정보'를 반환해야 한다 3. toString을 잘 구현한 클래스는 사용하기에 즐겁고, 디버깅이 쉽.. 2020. 9. 12.
[Codility(코딜리티)] Lesson5. CountDiv (100%) Lesson 5 Prefix Sums - CountDiv (Java Solution) app.codility.com/programmers/lessons/5-prefix_sums/count_div/ CountDiv coding task - Learn to Code - Codility Compute number of integers divisible by k in range [a..b]. app.codility.com 문제 A,B,K가 주어진다 { i : A 2020. 9. 12.
[Codility(코딜리티)] Lesson4. PermCheck (100%) Lesson 4 Counting Elements - PermCheck (Java Solution) app.codility.com/programmers/lessons/4-counting_elements/perm_check/ PermCheck coding task - Learn to Code - Codility Check whether array A is a permutation. app.codility.com 문제 N개의 길이를 가진 배열 A가 주어진다 A는 1~N까지 각 요소를 한개씩 모두 가지고 있어야 한다 예를 들면, A = {4,1,3,2}, A의 길이는 4이다 즉, 1,2,3,4의 원소를 가지고 있으니 True이다 B = {4,1,3} 이면, 1,2,3의 원소 중 2가 빠져있다 따라서 False이.. 2020. 9. 12.
[이펙티브자바 3판] ITEM11. equals를 재정의하려거든 hashCode도 재정의하라 이번장의 핵심은... equals()를 재정의할 때는 hashCode()도 반드시 재정의해야 한다 그렇지 않으면 프로그램이 제대로 동작하지 않을 것이다 재정의한 hashCode는 Object의 API 문서에 기술된 일반 규약을 따라야 하며, 서로 다른 인스턴스라면 되도록 해시코드도 서로 다르게 구현해야 한다 AutoValue 프레임워크를 사용하면 멋진 equals와 hashCode를 자동으로 만들어준다 equals()를 재정의했다면 hashCode도 재정의하자 만약 equals()를 재정의했는데, hashCode를 재정의하지 않았다면, 해당 클래스의 인스턴스를 HashMap이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제를 일으킬 수 있다 Object 명세에서 발췌한 규약은 아래와 같다 1. eq.. 2020. 9. 12.
[Codility(코딜리티)] Lesson4. MissingInteger (100%) Lesson 4 Counting Elements - MissingInteger (100%) app.codility.com/programmers/lessons/4-counting_elements/missing_integer/ MissingInteger coding task - Learn to Code - Codility Find the smallest positive integer that does not occur in a given sequence. app.codility.com 문제 길이 N의 배열 A가 주어진다 A에 포함되어 있지 않은 가장 작은 양의 정수를 구하는 문제이다 예를들면, A = [1,3,6,4,1,2] -> A에 없는 가장 작은 양의 정수는 5이다 A = [-1,-3] -> A에 없는.. 2020. 9. 12.
반응형