본문 바로가기

dictionary2

[Swift][프로그래머스][LV_2] 위장 요구능력 : Dictionary 코드설명 : 옷 입는 경우의수다. 상의 반팔티, 후드티, 맨투맨 하의 청바지, 슬렉스, 조거팬츠 위와 같이 있으면 옷을 입는 총 경우의 수는 9가지이다. 하지만 이 문제에서는 하나만 입는 경우의 수도 셌으므로 상의 반팔티, 후드티, 맨투맨, 안입음 하의 청바지, 슬렉스, 조거팬츠, 안입음 안입음까지 포함시켜줘야하고, 둘다 안입는 경우는 포함안시키기에 -1을 해줘야한다. 나는 dictionary를 활용해서 dictionary가 비어있지 않으면 1을 더해줬고 비어있으면 2로 초기화했다. 2로 초기화 한 이유는 dict[바지] 이면 현재 for문을 돌고있는 clothes의 원소중 바지하나가 도는것이기 때문에 현재바지 1개 + 안입음 1개 해서 2로 초기화했다. 그리고 결과값을 .. 2022. 2. 22.
[Swift][프로그래머스][LV_1] 신고결과받기 요구능력 : 딕셔너리의 활용 코드설명 : 문제를 풀어봤는데 O(n^2)으로 풀어서 몇개의 테스트케이스에서 시간초과가 나왔다. 신고자와 피신고자의 이름을 맞추다가 시간초과가 난것이다. 이 부분에서 생각을 잘 해야되는데, Dictioary의 특성상 키는 중복되지 않는다. 그리고 신고한사람이 자신이 신고한사람의 목록을 갖고있어봐야 소용이없다. 그래서 피신고자(신고당한사람)가 신고자를 Dictionary에 저장하고 자신을 신고한 사람이 k명이 넘을경우, 자신을 신고한 사람에 1씩 더해줌으로써 경고메일을 표현해준다. 이 문제는 이게 핵심이다. for i in toDict{ if i.value.count >= k { for v in i.value{ receiveDict[v]! += 1 } } 후기 : 커다란 사고가.. 2022. 2. 19.