[카카오 기출] 나머지 한 점 (프로그래머스, 알고리즘 문제 해설) - 딕셔너리 키 값, value 값 다루기

Soorim Yoon·2022년 9월 15일
0

문제

https://school.programmers.co.kr/learn/courses/18/lessons/1878

  • 직사각형 좌표가 세 개 주어질 때, 나머지 한 좌표를 구해라.

풀이

딕셔너리에 각 좌표가 언급된 개수를 저장했다. 이 때, 딕셔너리의 value 값은 [x, y] 형태의 배열로 저장했다. x와 y는 각각 x 좌표로서 언급된 횟수, y 좌표로서 언급된 횟수를 저장한다.

결과적으로 다음과 같이 값이 저장되는 것이다.
예) {"1":[2,1],"2":[1,2]}

value 배열을 탐색하면서, 한 번 카운팅 된 key 값이 남은 하나의 모서리가 된다. x 자리가 1이라면 x 좌표가, y 자리가 1이라면 y좌표가 해당 key 값이 된다.

코드

💡 코드로 구현하면 다음과 같다. 역시 문제를 풀다보면 딕셔너리를 사용하는 경우가 굉장히 많은 것 같다. 딕셔너리를 사용하는 연습을 꾸준히 해야 겠다 😎

def solution(v):
    hash = {}		# x, y좌표 언급 횟수 카운팅
    for i in range(len(v)):
        hash[v[i][0]] = [0, 0]
        hash[v[i][1]] = [0, 0]
        
    x, y = 0, 0
    for i in range(len(v)):		# 좌표 값을 딕셔너리의 key로, 언급된 횟수를 value 값으로 저장
        hash[v[i][0]][0] += 1 
        hash[v[i][1]][1] += 1 
    
    for i in hash.keys():		# 해시의 key 값을 불러오는 방법 
        if hash[i][0] == 1:		# 언급 횟수가 1번이면 x좌표로 지정
            x = i
        if hash[i][1] == 1:		# 언급 횟수가 1번이면 y좌표로 지정
            y = i
    
    answer = [x, y]
    
    return answer
profile
👩🏻‍💻 AI를 좋아하는 IT학부생

0개의 댓글