본문 바로가기

programmers13

[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 문자열 내 p와 y의 개수 해답) def solution(s): return True if s.count('p')+s.count('P') == s.count('y')+s.count('Y') else False 풀이) 이건 솔직히 설명따윈 필요없다 * 이 문제 및 로고의 저작권은 Programmers에 있습니다. 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 2020. 3. 13.
[프로그래머스💯] 코딩테스트 연습 > (DFS/BFS) > 여행경로 / Python 문제풀이 해답) from collections import defaultdict def solution(tickets): START = "ICN" citiesDests = defaultdict(list) for ticket in tickets: # 한도시당 edge 수를 계산 citiesDests[ticket[0]].append(ticket[1]) for city in citiesDests.keys(): citiesDests[city].sort() # print(citiesDests) stack = [] res = [] def Go(start): stack = [] stack.append(start) if len(citiesDests[start]) == 0: # print("현재 stack => ", stack).. 2020. 3. 4.
[프로그래머스💯] 코딩테스트 연습 > 동적 계획법 > 정수삼각형🔺 해답) def solution(triangle): answer = 0 length = len(triangle) # length+1 한 이유 : 맨밑줄 index 넘어가도 오류안나게 maxPath = [[0 for _ in range(length+1)] for _ in range(length+1)] maxPath[0][0] = triangle[0][0] for i in range(length-1): for j in range(i+1): # 왼쪽 밑 보고 갱신 if maxPath[i][j] + triangle[i+1][j] > maxPath[i+1][j]: maxPath[i+1][j] = maxPath[i][j] + triangle[i+1][j] # 오른쪽 밑 보고 갱신 if maxPath[i][j] + t.. 2020. 2. 25.
[프로그래머스💯][JS] 코딩테스트 연습 > 탐욕법(Greedy) > 섬 연결하기 해답) const makeDisjointSet = (islandList, n) => { for (let i = 0; i { if (island.pi === island.me) return island else { return findSet(islandList, islandList[island.pi]) } } const link = (island1, island2) => { if (island1.rank > island2.rank) island2.pi = island1.me else island1.pi = island2.me if .. 2020. 2. 9.
[프로그래머스💯] 코딩테스트 연습 > 완전탐색 > 카펫 해답) def solution(brown, red): answer = [] wid_hei_sum = int(brown/2 + 2) for height in range(1,wid_hei_sum): width = wid_hei_sum-height redsum = (width-2)*(height-2) if redsum == red : answer.append(width) answer.append(height) break return answer red는 안에 직사각형이고 brown 은 직사각형을 감싸는 테두리입니다. 수학적으로 생각해본다면 테두리 가로세로에서 각각 -2 를 한 길이가 직사각형의 가로세로 입니다. 세로의 길이를 1부터 높여가며 완전탐색을 돌면서 red 타일 개수가 일치하는지를 찾습니다. 출처: .. 2020. 1. 25.
[프로그래머스💯] 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 네트워크 > 다른 사람의 풀이 해답) def solution(n, computers): check = [1] * n network = 0 def find(Coms, Com, Com_index): check[Com_index] = 0 for objCom_i,obj_com in enumerate(Com): if obj_com: if check[objCom_i]: find(Coms, Coms[objCom_i], objCom_i) for index, com in enumerate(computers): if check[index]: find(computers, com,index) network += 1 return network 풀이) * check = 컴퓨터가 네트워크에 포함되었는지 여부를 반환합니다. (1: 아직안됨 0: 연결됨) 1. 한.. 2020. 1. 16.