본문 바로가기

오늘의 공부

(21)
에러 종류
[programmers] 자물쇠와 열쇠 1 사용 알고리즘 및 아이디어 - Greedy search 다짜고짜 살펴보는 문제인듯.. - CNN 할 때도 사용하는 padding 개념이 여기에도 들어갔다. 원본의 가장자리에 가짜 값(나는 2를 넣음)을 추가해 원본의 크기를 늘리는 padding 기법은 모든 섭셋을 매칭할 때 유용하다. - 2차원 배열을 90도 회전하는 방법 - 모듈화 연습. 2. 리뷰 (1) 항상 막혔던 부분: 2d-array의 부분집합을 인덱싱하는 방법을 확실하게 이해할 수 있었던 문제. 내가 맨날 하던 방법 df[i:i+n][j:j+m] 을 하면 n개의 행만 추출되더라.. 완전 헛다리 짚고 있었음.. 인덱싱 할 때, 시작좌표 ( start_x , start_y ) 값을 잡은 후, 부분집합 크기 i, j 만큼 더해주면 원하는 부분만..
[Hacker Rank] Sherlock and Anagrams 기가막히다.. 문자열 반복 문제는 해시테이블을 이용하여 하나씩 카운트하면 편할 것 같다. 1. total int 값을 선언하고, 청크 dic 을 만든다. 여기에 청크의 개수를 메모할 것이다. 2. for 문을 두 개 돌린다. 하나는 청크의 길이, 하나는 시작 인덱스임. 2.1. for 문을 이용해 만든 청크를 정렬하여 반복을 없앤다. 2.2. 청크 dic에 정렬한 청크를 입력하고 카운트를 한다. 2.2.1 청크를 구성한문자가 같다면 똑같은 문자열으로 만들 수 있다. 2.2.2. 청크 하나일 때는 만들 수 있는 청크가 0이므로 dic 디폴트 값은 0으로 설정한다. 2.2.3. 청크가 n(n>1)개일 때, 만들 수 있는 청크는 n-1개 이다. 2.3. 따라서 청크의 디폴트 값은 0으로 설정한 후 이를 tot..
[HackerRank] New Year Chaos 두 가지 방법을 생각했다. 1. array를 보고 뇌물 먹인 횟수 계산하기 2. 직접 elements 위치를 바꿔가며 몇 번 뇌물을 먹였는지 세기 첫번째 방법을 하다가 포기했다. 고려할 상황이 너무 많았음 더보기 1. index 와 index에 현재 위치한 값을 비교한다. 2. index == 현재값 은 넘어간다 3. index 현재값 : 뇌물을 받은 사람이다. 4.1. 4. 인 사람 중에서도 뇌물을 준 사람이 있다. q[i] > q[i+1] 인 경우 두번째 방법은 직접 원소를 옮겨가며 횟수를 카운트했다. 인터넷의 도움을 받았다. 더보기 1. index 와 메모 dic 을 준비한..
DP 는 아직도 너무 어렵다. 서울에서 경산까지 https://programmers.co.kr/learn/courses/30/lessons/42899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dp 테이블을 무엇을 기준으로 만들어야 하는지, 인덱스는 어떻게 잡는지가 어렵다. 처음에 나는 walk table, bike table만 만들었다. 즉 들른 도시의 수를 인덱스로 잡으려고 한 것이다. 도시를 인덱스로 잡은 후, 각 인덱스에 (남은 시간, 총 모금액)을 기록하려 했는데 너무 복잡했다. 쉬운 방법은 모든 것을 잘게 쪼개는 것이다! 도시 별로 (맞았다) 시간(K)을 인덱스(띠용!)..
운영체제 알고리즘 SJF 와 디스크 컨트롤러 https://programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 운영체제 스케쥴링 알고리즘 CJSF 알고리즘 First Come First Start " 온 순서대로 업무를 처리한다. " 단점: waiting time 이 길다. SJF 알고리즘 Shortest Job First "소요 시간이 짧은 업무부터 처리한다. " 장점: waiting time 이 단축된다. 단점: 미래에 올 업무의 소요 시간을 예측할 수 없어 실제로 사용할 순 없다. Priority Scheduli..
네트워크 Graph, BFS 알고리즘 ###======================================= # stack을 이용하여 BFS 사용하기 # 왜 bfs? 주위를 살펴보며 네트워크가 갖춰져 있는지 확인해야 함. # 그래프를 먼저 만들고 , 그래프에 대하여 bfs 알고리즘 ###===================================== def dfs(graph, start_node): visit = [] stack = [] stack.append(start_node) while stack: node = stack.pop() if node not in visit: visit.append(node) stack.extend(graph[node]) return visit def solution(n,computers): #1...
[프로그래머스] 조이스틱 https://gurumee92.tistory.com/182 프로그래머스 문제 풀이 조이스틱 문제 URL 조이스틱 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도 문제의 입력을 통해서, 문제를 파악해보도록 하겠습니다. 다음은, 문제의 입력입니다. 입력: name = "JAZ".. gurumee92.tistory.com 1. 사용 알고리즘: 탐욕 알고리즘 : 각 상황에 대해 최적해를 찾아야 한다! 최적해를 찾아야 할 상황들) -상황 1 : 문자를 바꿀 때 위로 ? 아래로? -상황 2 : 방향은 오른쪽으로 가야 할까? 왼쪽으로 가야할까? 상황을 나누고 각 상황에서 나온 솔루션들을 비교하여 최적해를 고르면 된다!! 다시 풀어보기 고려할 사항: while 문을 사용할 때 ..