분류 전체보기

    [프로그래머스] 게임 맵 최단거리

    [프로그래머스] 게임 맵 최단거리

    문제 간단한 BFS 문제인데, 오랜만에 BFS를 풀어서 버벅거렸다. 그래도 나름 금방 풀었다. 코드 def solution(maps): global mX,mY mX = [0,1,0,-1] mY = [1,0,-1,0] return bfs(maps) def bfs(maps): endX = len(maps) - 1 endY = len(maps[0]) - 1 isVisit = [[ False for j in range(len(maps[0]))] for i in range(len(maps))] queue = [Point(0,0,1)] isVisit[0][0] = True while len(queue) != 0: p = queue.pop(0) if p.x == endX and p.y == endY: return p..

    [프로그래머스] 숫자의 표현 [python]

    [프로그래머스] 숫자의 표현 [python]

    문제 투포인터로 가볍게 풀 수 있는 문제다. 시간복잡도는 O(N)이다 코드 def solution(n): answer = 0 start = 1 end = 1 s = 1 while end

    [프로그래머스] 신규 아이디 추천 [python]

    [프로그래머스] 신규 아이디 추천 [python]

    문제 단계 별로 구현하면 되는 간단한 구현 문제이다. 코드 def solution(new_id): answer = '' # 1단계 new_id = new_id.lower() # 2단계 canIncludeWord = ['-', '_', '.'] newId = "" for i in range(len(new_id)): # 문자인지 if new_id[i].isalpha() or new_id[i].isnumeric() or new_id[i] in canIncludeWord: newId += new_id[i] # 3단계 while ".." in newId: newId = newId.replace("..", ".") # 4단계 newId4 = newId if len(newId4) != 0 and newId4[-1] ..

    [프로그래머스] 성격 유형 검사하기 [python]

    [프로그래머스] 성격 유형 검사하기 [python]

    문제 구현 문제였고, 다른 사람 풀이 보니 매우 쉽게 풀었다,, 객체를 사용하다보니 좀 더 오래 걸린 거 같지만 로직 자체는 간단하다. 시간 복잡도는 survery의 크기만큼 한번 for문을 돌아 O(N)이다 코드 def solution(survey, choices): answer = '' personalities = {} personalities["RT"] = Personality("R", "T") personalities["CF"] = Personality("C", "F") personalities["JM"] = Personality("J", "M") personalities["AN"] = Personality("A", "N") for idx in range(len(survey)): personali..

    [프로그래머스] 신고 결과 받기 [python]

    [프로그래머스] 신고 결과 받기 [python]

    문제 구현 문제였고, set과 map(dictionary)를 사용해서 문제를 풀었다. 먼저 이름들을 idx에 맞도록 dictionary에 매핑을 시켰고, 신고를 당한 사람을 key로 두고, value들을 신고한 사람을 set으로 둬서 문제를 해결하였다. 시간 복잡도는 report의 크기를 N으로 하면, O(N)일 거 같다 코드 def solution(id_list, report, k): answer = [0 for i in range(len(id_list))] mail = {} nameToIdx = {} for idx, idl in enumerate(id_list): nameToIdx[idl] = idx for re in report: userId, reportedId = re.split(" ") if ..