[프로그래머스] 161988 - 연속 펄스 부분
·
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/161988문제 파악어려운 점변수 type 신경쓰기 (int, long)DP 의미(?) 유지하기DP를 업데이트 해 나가면서 이것 저것 덧붙이려는 자신을 볼 수 있다.일관성을 유지하도록 하자풀이2차원 DP(int[][] DP)로 해결DP에서의 더해주고 빼는 행위를 0번째 열, 1번째 열에 저장하여 구현하면 편할 듯 했다.[구현 순서]초항 초기화(N-1번째 값)N-1번째 부터 0번째에서 순서대로 memorization을 진행 DP[i] 데이터를 업데이트하는 방법은 다음과 같다.주어진 수(sequence[i])에 -를 곱하는 경우(=펄스 부분 수열에서 -1)를 DP[i][0]에 업데이트주어진 수(seque..
[프로그래머스] 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..