본문 바로가기

전체 글

(49)
equals와 hashcode는 왜쓰는거지? 오늘은 java Object의 메소드 equals와 hashcode에 대해서 알아보겠다. 1. Equals()는 뭐하는 메서드인가? 이름에서부터 눈치챘겠지만 매개변수로 들어오는 객체와 자신의 객체가 같은지 비교하는 기능을 한다. Object의 메서드 구현부를 살펴보자. 오.. 별거 없다. 그냥 같은 참조값인지 비교한다. 참조변수 두개를 '==' 연산자로 비교하면 참조값이 같은지의 여부를 반환한다. 이렇게 우리가 만드는 객체에서 equals를 사용하면 기본으로 참조가 같은지의 결과값을 반환하게 된다. 하지만 난 참조값 같은지보다 객체의 필드가 모두 같으면 같은 객체로 보고 싶은데? 그럼 오버라이딩으로 해당 객체에 맞게 구현하면 된다. class Person { String name; int age; pub..
[프로그래머스/파이썬] 배달 처음 이 문제를 보자마자 이건 딕셔너리에 {출발지: [(도착지, 시간), (도착지, 시간), ...], 출발지: [...], ...} 이런식으로 우선 풀어서, 재귀로 누적 시간을 잰다음 K보다 시간이 작은지 체크하고 list에 넣어야겠다 라고 생각하고 이렇게 풀었다. def solution(N, road, K): towns = [500000] * (N+1) graph = collections.defaultdict(list) for r in road: a, b, time = r graph[a].append((b, time)) graph[b].append((a, time)) def go_delivery(visited: list, arrive: int, time: int): for a, t in graph[v..
[프로그래머스] 네트워크 언어: python3 문제유형: DFS/BFS 내가 푼 답안 import collections def solution(n, computers): answer = 0 visited = [] def connect(start): queue = collections.deque() queue.append(start) while queue: num = queue.popleft() visited.append(num) queue += [i for i, c in enumerate(computers[num]) if c == 1 and i not in visited] for com in range(n): if com not in visited: answer += 1 connect(com) return answer