Develop/Algorithm (29) 썸네일형 리스트형 [BOJ]1269_대칭 차집합 알고리즘 유형 : 자료구조 풀이 참고 : 문제 링크 : 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.. [알고리즘]BOJ_화살표 그리기_15970 알고리즘 유형 : 정렬 풀이 참고 : 없음 문제 링크 : 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)): .. [알고리즘]BOJ_카드_11652 알고리즘 유형 : 정렬, 자료구조 풀이 참고 : 동기 문제 링크 : 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]) 배운 점, 배울 점 딕셔너리 공부를 더 해야겠다. .. [BOJ]14888_연산자 끼워넣기_C언어 알고리즘 유형 : 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값 동.. [BOJ]N과 M (2)_15650 알고리즘 유형 : 백트래킹 풀이 참고 : 없음 문제 링크 : 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분도 안걸려서 푼거같다! 기분이가 좋다. 재귀를 많이 다루어 보면서 일반적.. [BOJ]N과 M(4)_15672 알고리즘 유형 : 백트래킹 풀이 참고 : 없음 문제 링크 : 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.. [BOJ]N과 M (1)_15649 (백트래킹) 알고리즘 유형 : 백트래킹, 재귀 풀이 참고 : 자신 문제 링크 : https://www.acmicpc.net/problem/15649 늘 언급하지만 해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다. 그래서 당연히 귀한 시간 내주시어 지적해 주시면 감사 드리겠습니다. 풀이 요약 어제 풀었던 문제와 동일한 알고리즘이며, 같은 수가 리스트에 들어가지 못하도록 i not in arr 조건 하나를 추가 했다. 코드(python) n, m = map(int, input().split()) arr = [] def main(): if m == len(arr): print(' '.join(map(str, arr))) return for i in range(1, n+1): if i not in arr: ar.. [BOJ]N과 M(3)_15651_분할정복 알고리즘 유형 : 백트래킹 풀이 참고 : 블로그 문제 링크 : https://www.acmicpc.net/problem/15651 늘 언급하지만 해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다. 그래서 당연히 귀한 시간 내주시어 지적해 주시면 감사 드리겠습니다. DFS와 백트래킹 정리 참고 링크 : https://chanhuiseok.github.io/posts/algo-23/ 풀이 요약 1. 반복문 안에서 재귀를 하여 반복문이 한번 들어갈때마다 n개의 반복을 하게 된다. 2. 프린트 모양에 대한 부분은 join함수와 pop을 통해 구현 하였다. 코드(python) n, m = map(int, input().split()) arr = [] def go(): if len(arr) == m: #.. 이전 1 2 3 4 다음