프로그래밍/Effective Java

[Effective Java 3/E] 3장 모든 객체의 공통 메서드

ITEM 10. equals는 일반 규약을 지켜 재정의 하라 기본 object를 상속하고 equals를 override 하지 않은 경우에는, Object의 equals를 상속하고 객체 식별성을 기준으로 판단한다. String s1 = new String("a"); String s2 = new String("a"); s1 == s2; // false. 두 객체는 같은 "a"라는 문자열을 담고 있는 클래스지만 // 각각 다른 인스턴스다. s1.equals(s2); // true. 다른 객체지만 의미가 같으므로 논리적 동치성. 아래 규칙 중 단 하나라도 만족하면 재정의 하지 않도록 하자. 각 인스턴스가 본질적으로 고유하다. 값을 표현하는 게 아닌 동작하는 개체를 표현한다. thread는 equals가 성립할 ..

2021.02.28 게시됨

 포스팅 썸네일 이미지

프로그래밍/Algorithm

[BJ 3344] N-Queens

서론 3344번: N-Queen 첫째 줄에 N이 주어진다. N은 8, 26, 213, 2012, 99991, 99999중 하나이다. www.acmicpc.net N-Queens의 매운 맛 문제가 있길래 시도해봤는데 시간초과로 박살이 났다. 인풋으로 99999가 들어가는데 시간 초과가 나는건 자명했는데 아무 생각없이 정답률을 까먹었다. 대체 어떻게 푸는건가 싶어서 구글링해봤는데, 이 문제에만 특별히 적용되는 알고리즘이 있었다. 태그에 백트래킹이 붙어있지 않을 때 알아봤었어야 했는데... Eight queens puzzle - Wikipedia The eight queens puzzle is the problem of placing eight chess queens on an 8×8 chessboard so..

2021.02.24 게시됨

프로그래밍/Algorithm

[BJ 18768] 팀 배정

서론 최근에 그리디 알고리즘 문제를 집중적으로 풀어보고 있습니다. 그리디 알고리즘을 사용하는 문제라고 파악이 되면, 어떤 기준을 가지고 최적의 선택을 해야할지 고민해 보아야 합니다. 이 문제는 쉽게 풀 수 있을 것 처럼 보이는 문제지만 기준을 정교하게 세워야 통과할 수 있는 문제입니다. www.acmicpc.net/problem/18768 18768번: 팀 배정 각 테스트 케이스 마다 능력치 합의 최댓값을 한 줄에 하나씩 출력한다. www.acmicpc.net [팀 배정] 문제 사내 해커톤 대회에서 팀 배틀 보안 해커톤을 하기로 했다. 대회는 주어진 보안 서버를 공격(해킹)하는 역할의 팀 A와 방어(보안)하는 역할의 팀 B로 나누어서 진행한다. 참가자는 총 n명이고, 각 참가자의 공격 능력과 방어 능력은..

2021.02.23 게시됨

프로그래밍/Effective Java

[Effective Java 3/E] 2장 객체 생성과 파괴

ITEM 1 Consider Static Factory Methods Static factory method(정적 팩터리 메서드) 생성자 없이 메서드를 통해 객체를 생성하는 것 ! : 디자인 패턴에서 일치하는 패턴은 없다. 책의 고유한 패턴. //example : valueOf in Boolean box class public static Boolean valueOf(boolean b){ return b ? Boolea.TRUE : Boolean.FALSE; } Advantages 생성자와 다르게 이름을 가질 수 있다. 생성자의 파라미터로는 반환될 객체의 특성을 코드 작성자가 알기 힘들다. 그러나 정적 팩터리 메서드는 이름을 잘 지어놓으면 코드를 읽는 사람이 반환될 객체의 특성을 쉽게 이해할 수 있다. ..

2021.02.22 게시됨

프로그래밍/Effective Java

[Effective Java 3/E] 1장 들어가기

책을 관통하는 키워드 - Clarity(명료성) Simplicity(단순성) Component는 사용자를 놀래게 하는 동작을 해서는 안된다. Component는 가능한 한 작되, 너무 작아서도 안된다. 코드는 복사되는 게 아니라 재사용되어야 한다. Component 사이의 의존성은 최소로 유지해야한다. 오류는 만들어지자 마자 가능한 빨리(물론 Compile 타임에 잡는게 베스트!) 잡아야 한다. 규칙을 어길 때는 합당한 이유가 있어야 한다. 단어정리 Component : method부터 framework까지 재사용 가능한 모든 소프트웨어 요소 Java의 자료형은 Interface(+annotation), Class(+enum), Array, Primitive Class의 멤버들은 Field, Method..

2021.02.22 게시됨

프로그래밍/Algorithm

[BOJ 1256] 사전 (풀이 미완성, DP사용 X)

서론 DP 태그가 떡하니 붙어있는데 DP 복습을 안하고 풀어서 DP로 풀 아이디어가 없었다. 대신에 수학적인 개념을 이용해 풀어보았다. 설명이 잘 될진 모르겠다. 거지같은 코드에 괴상한 아이디어다. 2 2 x 케이스 a는 0으로, z는 1로 보기로 했다. 그래서 a와 z의 갯수를 충족하는 이진수를 작은 순부터 나열하기로 했다. 0011 // index = 0 0101 0110 1001 1010 1100 // index = 5 처음 나오는 1의 위치를 x라고 두면, 기준으로 0을 배열할 수 있는 경우의 수가 2C0이다. 0

2021.02.10 게시됨

 포스팅 썸네일 이미지

프로그래밍/Algorithm

[BOJ 3078] 좋은 친구

문제 3078번: 좋은 친구 첫째 줄에 N과 K가 주어진다. (3 ≤ N ≤ 300,000, 1 ≤ K ≤ N) 다음 N개 줄에는 상근이네 반 학생의 이름이 성적순으로 주어진다. 이름은 알파벳 대문자로 이루어져 있고, 2글자 ~ 20글자이다. www.acmicpc.net [좋은 친구] 상근이는 환갑을 바라보던 나이에 수능 시험을 다시보고 교대에 입학했고, 초등학교 선생님으로 취직했다. 상근: 요즘 애들은 친구를 사귀지 않나봐. 내가 앞에서 보고 있으면, 친구가 있는 학생이 별로 없는 것 같아. ??: 오빠! 오빠는 말콤의 친구와 성적이라는 책 안 읽어 봤어? 이 책에는 성적과 친구가 무슨 관계가 있는지 나와. 요즘 애들은 친구를 사귀기 전에 먼저 그 친구의 반 등수를 살펴봐. 말콤은 이 연구를 하기 위해..

2021.02.04 게시됨

프로그래밍/Algorithm

[BOJ 4884] FIFA 월드컵

서론 백준 4884번 FIFA 월드컵은 solved.ac 기준 Bronze 1 문제임에도 불구하고, 정답자가 30%밖에 되지 않습니다. 문제 자체의 난이도는 높지 않으나, 간과하기 쉬운 부분이 있어서 많이 틀리지 않았을까 생각합니다. 4884번: FIFA 월드컵 FIFA는 월드컵의 대회 형식을 약간 수정하려고 한다. 현재, 월드컵은 32개팀이 참가하며, 2개의 라운드로 이루어져 있다. 첫 번째 라운드는 조별 리그이고, 32개팀은 8개의 조에 배정된다. 각 팀은 www.acmicpc.net [FIFA 월드컵 문제] FIFA는 월드컵의 대회 형식을 약간 수정하려고 한다. 현재, 월드컵은 32개팀이 참가하며, 2개의 라운드로 이루어져 있다. 첫 번째 라운드는 조별 리그이고, 32개팀은 8개의 조에 배정된다. ..

2021.01.23 게시됨

대발

수험생을 위하여 졸업생이 돌아보는 UNIST

들어가기 전에 사람의 성격은 다양합니다. UNIST는 특수한 환경이기 때문에 성격에 따른 호불호가 많이 갈립니다. 저와 비슷한 성격을 가진 사람이 학교에 만족할 것을 보장하지는 않지만, 참고는 해주시면 좋겠습니다. 사람들과 술 먹는 것을 적당히 좋아합니다. 술고래보다는 빼는 쪽에 가깝긴 합니다. 클럽 등 유흥에 관심이 없습니다. 한 번에 여러 일을 못하는 성격입니다. 새내기 때 사람 만나고 활동하는데 관심이 있었지만 고학년이 되면서 내성적인 면을 많이 발견했습니다. 자세히 보면 급한 성격이 드러나는데 멀리서 보면 게으르고 느긋합니다. 여행을 매우 좋아합니다. 주 활동 반경이 1km 이내입니다. 구조적인 글 대신에, 학교가 가진 특성을 기준으로 장단점을 적어볼까 합니다. 사람에 따라서는 제가 느끼는 장점이..

2021.01.17 게시됨

 포스팅 썸네일 이미지

기타/컴퓨터 문제 해결하기

Word 365에서 펜으로 그리기 기능 비활성화 된 경우

서론 많은 것들이 비대면으로 변하면서 서류를 온라인으로 제출하는 일이 잦아졌다. 터치스크린과 펜을 지원하는 마이크로소프트 공식 디바이스인 서피스 랩탑3과 서피스 프로4를 사용하고 있기에, 서명이 필요한 부분에 서피스 펜을 쓰곤 했는데 어느 순간부터 워드에 그리기 기능이 꺼져 있어서 황당했다. 구글에 word drawing greyed out, how to activate drawing in word 등으로 검색을 해보았지만, 한국 포럼에선 복구 툴 이용과 재설치 후 문의, 외국 윈도우 포럼에선 기기에 따라서 지원하지 않을 수 있다 같은 속 뒤집어놓는 소리를 공식 관리자가 답변이라고 남겨놨었다. 원하는 답을 찾지 못해 포럼을 찾는 중에 어떤 외국 유저가 질문 올리고 혼자 해답을 찾은 쓰레드를 발견하게 되었..

2021.01.13 게시됨