[프로그래머스] 340212 - 퍼즐 게임 챌린지
·
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/340212 문제 파악문제 자체는 이해가 어렵지 않았다. 최초(=최소)로 퍼즐을 다 풀 수 있는 숙련도를 찾도록 하자.아래 조건을 잘 이해하면 구현은 어렵지 않았다.- diff ≤ level이면 퍼즐을 틀리지 않고 time_cur만큼의 시간을 사용하여 해결합니다.- diff > level이면, 퍼즐을 총 diff - level번 틀립니다. 퍼즐을 틀릴 때마다, time_cur만큼의 시간을 사용하며, 추가로 time_prev만큼의 시간을 사용해 이전 퍼즐을 다시 풀고 와야 합니다. 이전 퍼즐을 다시 풀 때는 이전 퍼즐의 난이도에 상관없이 틀리지 않습니다. diff - level번 틀린 이후에 다시 퍼즐을..
[프로그래머스] 12952 - N-Queen
·
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 파악N * N의 체스판에서 N개의 퀸을 놓을 수 있는 경우의 수를 리턴 어려운 점시간 초과가 나지 않게 구현하도록 하자.재귀로 구현하게 될 것 같은데 시간 복잡도가 높아지지 않는 방법을 생각해 내기가 어려웠다. 풀이int 배열을 생성하여index -> columnindex애 해당하는 값 -> row로 지정하여 구현하면 일차원 배열로도 구현 가능하다.n개의 퀸을 필수적으로 놓아야 하므로,colu..
[프로그래머스] 77885 - 2개 이하로 다른 비트
·
Algorithm
알고리즘은 조금씩 풀고 있었는데, 문제를 풀고 복기할 겸 오랜만에 업로드해본다 😇푼 문제도 복습할 겸 업로드할 계획https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 파악비트 연산을 잘 활용하여 풀어야겠다비트가 1~2개 다르다는 점을 활용할 수 있을 것 같다.  어려운 점생각보다 케이스가 많다 [0, 100,000]자료형이 long 타입 - [0, 10^15]이기 때문에 비트 연산자라도 연산 횟수가 큰 편아래와 같은 코드 작성 시 타임아웃이 ..
Git Credential
·
TroubleShooting/Etc
발생 환경, 상황 2개 이상의 GitHub 계정을 써 Repo마다 다른 계정으로 관리하는 상태 Global, Local 두 개의 설정(username, email)이 완료되었고 이를 git config --local user.name, git config --local user.email 로 확인하였다 그러나 push를 시도할 때 global username이 뜨며 Pemission denied가 발생 :( username과 email은 설정되어 있었지만, push 할 때 다른 name이 뜨며 Permission Denied.. ^_^;; 해결 방법 이럴 경우 권한 문제이기 때문에 Credential 설정을 바꾸어 주어야 한다. Credential 도 local, global 설정을 달리 줄 수 있는데,..
Effective Java - 상속과 합성
·
Book/DEV
상속보다는 합성을 우선시하자 상속은 도형 - 동그라미 관계에서 도형은 각, 면적, 기타 등의 필드가 존재한다. 상속은 캡슐화를 깨트릴 우려가 있다. ➡️ 캡슐화가 깨진다? : 상위 클래스를 수정하였을 때 하위 클래스에 미치는 영향이 생긴다는 뜻에서 캡슐화가 깨진다고 묘사 또한 상속을 이용하게 되면 상위 클래스에 변경이 생기게 될 경우 상속받은 모든 하위 클래스에서 변경이 일어난다. 순수한 is-a 관계에서만 상속을 사용하고, 그 외의 경우에는 합성을 사용하는 것이 바람직하다 자바 9 이상부터 정적 팩토리 메서드를 지원한다. Arrays.asList 안 쓰고 List.of, Map을 새로 생성 할 때는 Map.of을 사용하자. 다만 불변 객체가 되기 때문에 UnsupportedOperationExcepti..
Clean Code - 1장(깨끗한 코드)
·
Book
Clean Code✨ 1장을 읽으며 간략하게 정리한 포스트입니다. 장인 정신 = 원칙, 패턴, 기술을 기반으로 한 이론적인 지식의 습득 + 직접 경험해 연습하는 체득 나쁜 코드 미약한 전제에 기반해 발생한다. 시간을 핑계로 나쁜 코드를 양산하지 말자. 오히려 나중에 시간이 더 필요해질 수 있다. 클린 코드의 특성 우아하다(보기에 좋다) 가독성이 뛰어나다 다른 사람이 고치기 좋다 주의 깊게 작성된다 테스트 코드의 통과 중복이 없다 모든 설계 아이디어를 포함 클래스, 메서드, 함수를 줄인다. 읽기 쉽다 (bec. 기존 코드를 계속 참고하기 때문) 시간이 지날수록 코드의 품질이 좋아진다