Develop/Algorithm

알고리즘 유형 : 자료구조 풀이 참고 : 문제 링크 : https://www.acmicpc.net/problem/1269 코드(Javascript) const [n, input1, input2] = require("fs").readFileSync("../input.txt").toString().trim().split("\n"); //제출 할때 /dev/stdin으로 수정 const aArr = input1.split(" "); const bArr = input2.split(" "); const arr = [] const aaa = arr.concat(aArr, bArr) const vvv = new Set(aaa) const num = aaa.length - vvv.size console.log((aAr..
알고리즘 유형 : 정렬 풀이 참고 : 없음 문제 링크 : https://www.acmicpc.net/problem/15970 풀이 요약 정렬 후 예외사항만 잘 체크하면 되는 문제이다. 내가 푼 기본 아이디어는 점의 색깔을 인덱스로 하는 리스트안에 점들을 모아두었다. 코드(python) n = int(input()) arr = [[] for _ in range(n)] # 색깔을 인덱스로 갖는 2중 리스트 생성 for i in range(n): position, color = map(int, input().split()) arr[color-1].append(position) # 같은 색의 리스트 솔팅 for i in arr: i.sort() result = 0 for j in range(len(arr)): ..
알고리즘 유형 : 정렬, 자료구조 풀이 참고 : 동기 문제 링크 : https://www.acmicpc.net/problem/11652 풀이 요약 - 가장 많이 카드를 체크하기 위해 카드번호를 키로 갖는 딕셔너리로 구현 - 처음에는 리스트의 인덱스를 이용하여 풀어보았으나 값이 커서 메모리 초과... 코드(python) n = int(input()) arr = {} for i in range(n): a = int(input()) if a in arr: arr[a] += 1 else: arr[a] = 1 sort_arr = sorted(arr.items()) sort_arr.sort(key=lambda x:-x[1]) print(sort_arr[0][0]) 배운 점, 배울 점 딕셔너리 공부를 더 해야겠다. ..
알고리즘 유형 : DFS 풀이 참고 : https://velog.io/@kimmainsain/C%EC%96%B8%EC%96%B4-%EB%B0%B1%EC%A4%80-14888-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%81%BC%EC%9B%8C%EB%84%A3%EA%B8%B0 문제 링크 : https://www.acmicpc.net/problem/14888 풀이 요약 각 연산종류마다의 주어진 개수만큼 dfs함수를 실행하여 준다. 이때 x라는 변수를 하나씩 더하여 다음과 같은 사항을 체크한다. 1. dfs 깊이 2. arr 리스트의 인덱스 번호 따라서 주어진 연산 개수만큼 계산이 된다. 그리고 max값을 문제에서 주어진 범위의 가장 작은 수로 제한을 두어 비교하며 업데이트 한다. (min값 동..
알고리즘 유형 : 백트래킹 풀이 참고 : 없음 문제 링크 : https://www.acmicpc.net/problem/15650 풀이 요약 중복이 없는 배열이 나와야 하므로 for문 에서 i가 인자보다 클때만 재귀를 들어가게 하였다. 코드(python) n, m = map(int, input().split()) arr = [] def dfs(index): if len(arr) == m: print(' '.join(map(str, arr))) for i in range(1, n+1): if i >= index: # 중복을 없에는 재귀 조건 arr.append(i) dfs(i+1) arr.pop() dfs(1) 배운 점, 배울 점 10분도 안걸려서 푼거같다! 기분이가 좋다. 재귀를 많이 다루어 보면서 일반적..
알고리즘 유형 : 백트래킹 풀이 참고 : 없음 문제 링크 : https://www.acmicpc.net/problem/15652 늘 언급하지만 해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다. 그래서 당연히 귀한 시간 내주시어 지적해 주시면 감사 드리겠습니다. 풀이 요약 재귀 시 index 값(i)을 넘기고 해당 값부터 반복문을 돌림 코드(python) n, m = map(int, input().split()) arr = [] def dfs(index): if len(arr) == m: # 재귀 끝 지점 print(' '.join(map(str, arr))) return for i in range(index, n+1): # 반복문의 시작이 이전 i값부터 되도록 arr.append(i) dfs..
Hong-Kyu
'Develop/Algorithm' 카테고리의 글 목록