반응형

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..

Develop/Algorithm 2023.02.09

[알고리즘]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)): ..

Develop/Algorithm 2022.12.17

[알고리즘]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]) 배운 점, 배울 점 딕셔너리 공부를 더 해야겠다. ..

Develop/Algorithm 2022.12.16

[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값 동..

Develop/Algorithm 2022.10.28

[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분도 안걸려서 푼거같다! 기분이가 좋다. 재귀를 많이 다루어 보면서 일반적..

Develop/Algorithm 2022.10.24

[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..

Develop/Algorithm 2022.10.23

[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..

Develop/Algorithm 2022.10.22

[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: #..

Develop/Algorithm 2022.10.21

[BOJ] 회의실 배정_1931

알고리즘 유형 : 그리디 풀이 참고 : 동기 문제 링크 : https://www.acmicpc.net/problem/1931 늘 언급하지만 해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다. 그래서 당연히 귀한 시간 내주시어 지적해 주시면 감사드리겠습니다. 풀이 요약 가장 중요한 키는 '회의 종료시점으로 오름차순'으로 정렬하면 어떻게 구현할지 보인다. 그다음 반례를 하나 조심해야 하는데 문제에 답이 있다. '회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다.' 코드(python) import sys # 회의실 한개의 n개의 회의에 대한 사용표 # 회의 최대 개수 n = int(input()) arr = [] for _ in range(n):..

Develop/Algorithm 2022.10.19

[백준]가장 긴 증가하는 부분 수열_11053

알고리즘 유형 : DP, LIS 풀이 참고 : 유튜브, 여러 블로그 문제 링크 : https://www.acmicpc.net/problem/11053 늘 언급하지만 해당 내용은 정확하지 않아 개발 공부에 도움이 되지 않습니다. 그래서 당연히 귀한 시간 내주시어 지적해 주시면 감사 드리겠습니다. 가장 긴 증가하는 부분 수열이란?(LIS) 부분 수열이라는 개념부터 정확히 와닿지 않았다. 단어 하나씩 공부해야 했다. 1. 부분수열이란? - 내가 이해한 범위로 간단히 정리한다. - 수열 {1,2,3,4} 가 있다고 가정하면, 이 수열의 부분 수열은 1이 될 수도 있고, 2도 될수 있고 ... 1234도 될 수있다. - 즉, 주어진 수열에서 순서만 같다면 모든 공통되는 수열이 부분 수열이 될 수 있다. - 교집합..

Develop/Algorithm 2022.10.17
반응형