2 7

[백준][구현] 게리멘더링 2

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 내가 작성한 코드 from collections import defaultdict, deque def read_data():..

코딩테스트 2022.04.28

[백준][구현] 새로운 게임 2

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 내가 작성한 코드 from collections import deque, defaultdict dir = [(0, ..

코딩테스트 2022.04.28

[백준][구현] 주사위 굴리기 2

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 내가 작성한 코드 import sys from collections import deque, defa..

코딩테스트 2022.04.22

[파이썬 알고리즘 인터뷰][그리디] 주식을 사고팔기 가장 좋은 시점2

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 문제 정의 주식 가격이 시간순으로 주어질 때 최대 이익 출력 책에서 구현된 코드 from typing import List class Solution: def maxProfit(self, prices: List[int]) -> int: # 0보다 크면 무조건 합산 return sum(max(prices[i + 1] - prices[i], 0) for i in range(len(prices) - 1)) 기억해야할 기법 "그리디 알고리즘으로 접근해야한다"는 힌트를 어디서 얻을 수 있을까 문제를 잘 해석하면 모든 이익의 합산이다 sell & buy를 동시에 할 수 있다는 것을 캐치하면 쉬운 문제였다 나는 나중에 팔았을 때 ..

책읽기 2021.08.30

[Java의 정석][Chapter-7] 객체지향 프로그래밍 2 (2/2)

이 글은 "Java의 정석 (남궁 성 지음)"을 읽고 주관적으로 요약한 글입니다. 1. 다형성 1) 다형성 다형성 상속과 함께 객체지향개념의 중요한 특징 중 하나 상속과 깊은 관계 정의 여러 가지 형태를 가질 수 있는 능력 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현 - 조상클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있음 조건 참조변수의 타입에 따라 사용할 수 있는 멤버가 달라짐 참조변수가 사용할 수 있는 멤버는 인스턴스의 멤버 수보다 같거나 적어야 함 - 즉, super 클래스만 sub 클래스를 참조 가능 2) 참조변수와 인스턴스의 타입 불일치 참조변수의 형변환 서로 상속관계에 있는 클래스만 사용 가능 자료형은 작은 타입이 큰 타입..

책읽기 2021.08.23

[Java의 정석][Chapter-7] 객체지향 프로그래밍 2 (1/2)

이 글은 "Java의 정석 (남궁 성 지음)"을 읽고 주관적으로 요약한 글입니다. 1. 상속 (inheritance) 1) 상속 정의 기존의 클래스를 재사용하여, 새로운 클래스를 작성하는 것 클래스의 이름 뒤에 상속받고자 하는 클래스 이름을 키워드 'extends'와 함께 사용 class Child extends Parent { } 장점 코드의 양을 줄임 - 적은 양의 코드로 새로운 클래스를 작성 가능 코드를 공통적으로 관리 - 코드의 추가/변경이 매우 용이 재사용성 / 중복 제거 / 생산성과 유지보수 구성 조상 클래스 - 부모 클래스, 상위 클래스, 기반 클래스 - parent class, super class, base class 자손 클래스 - 자식 클래스, 하위 클래스, 파생된 클래스 - chil..

책읽기 2021.08.15

[파이썬 알고리즘 인터뷰][이진검색] 2D 행렬 검색2

이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 문제 정의 row / column 순서로 정렬된 2D 행렬에서 target 찾기 책에서 구현된 코드 # 첫 행의 맨 뒤에서 탐색 class Solution: def searchMatrix(self, matrix, target): # 예외 처리 if not matrix: return False # 첫 행의 맨 뒤 row = 0 col = len(matrix[0]) - 1 while row = 0: if target == matrix[row][col]: return True # 타겟이 작으면 왼쪽으로 elif target ..

책읽기 2021.08.13