👨‍🏫ps

    [프로그래머스] 성격 유형 검사하기 [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 ..

    [프로그래머스] 개인정보 수집 유효기간 [Python]

    [프로그래머스] 개인정보 수집 유효기간 [Python]

    문제 간단한 구현문제이다. python으로 class를 처음 써봐서 버벅거려서 시간이 좀 걸렸다,,, 시간복잡도는 O(n)이다 👨‍💻코드 def solution(today, terms, privacies): answer = [] tYear, tMon, tDay = today.split(".") tod = Date(tYear, tMon, tDay) dates = [] t = {} for term in terms: a, m = term.split(" ") t[a] = int(m) for privacy in privacies: date, a = privacy.split(" ") aYear, aMon, aDay = date.split(".") dates.append(Date(aYear, aMon, aDay).p..

    [백준] 1976번 여행 가자 풀어보기 [Java]

    [백준] 1976번 여행 가자 풀어보기 [Java]

    알고리즘 문제를 푸는 언어를 자바로 바꾸고, 유니온 파인드 문제를 처음 풀어본다. 그래서 처음에는 bfs로 푸는 건가 하다가, 유니온 파인드 가 생각나서 풀 수 있었다. 👨‍🏫 풀이 다음 도시로 여행을 하려면, 다음 도시와 어떤 경로든 이어져 있어야 한다. 서로가 이어져 있는지 여부를 체크할 때는 유니온 파인드를 쓰면 된다. find로 서로가 같은 parent를 공유하고 있는지 여부를 찾고, 만약 같은 parent를 공유하고 있다면, 갈 수 있는 경로가 있다는 것으로 간주할 수 있다. 각 도시를 연결할 때는 값이 작은 것을 parent로 만든다라는 것을 따르면 된다! (큰 것으로 기준을 두어도 됨 일관성있게만 기준을 만들기) 만약 두 노드의 부모가 다르면, 갈 수 없는 루트인 것이다. 👨🏻‍💻 코드 pa..

    [백준] 17780번 새로운 게임 풀어보기[Java]

    [백준] 17780번 새로운 게임 풀어보기[Java]

    시뮬레이션은 시간이 오래걸린다,,, 이 문제도 한시간 반 풀었다,,, 중간에 실수도 했다,,,!! 실수를 하면, 찍어서 보는 것도 좋지만, 내 논리가 어디가 틀렸는지 한번 둘러보는 것도 좋을 거 같다,,!! 👨‍🏫 풀이 색들을 저장할 수 있는 map을 만들었고, chess들의 위치를 저장하는 chessHorse를 만들었다. chessHorse는 LinkedList 2차원 배열로 만들어서, 같은 위치에 있는 것들은 linkedList로 연결해줘서 쌓인 것 처럼 보이게 했다,,,!! 움직일 수 있는 말들, 즉 혼자이거나 맨 아래에 위치한 말들을 PriorityQueue에 넣어줬다. 말들은 순서대로 움직이기 때문에, 순서가 작은 순으로 우선순위를 설정해줬다! 다음 위치가 파란색인 경우, 나간 경우 움직이지 않..