목록algorithm (5)
리미로그
https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열의 압축 길이를 1부터 문자열 길이까지 반복하여 진행한다. 처음 해당 길이만큼의 부분 문자열을 prev에 저장하고, 반복문을 돌면서 문자열이 같아서 누적해서 압축할 수 있는지 아닌지를 확인한다. 문제를 처음에 제출했을 때 60퍼센트 정도 맞다고 나왔는데, 그때 틀린 부분이 바로 total 과 temp 길이를 확인하는 if~else if~else 부분이다. 같은 부분이 한 번 밖에 없었다면 1..
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 이 문제는 구현하는 방법보다 문제 표현을 정확하게 이해하는 게 더 어려운 문제인 것 같다 재귀를 사용해서 갈 수 있는 방향이면 다시 함수를 호출할 수 있도록 하였고, cnt 변수를 통해 네 방향을 모두 확인하고 나면 다시 후진할 수 있는지를 확인하여 할 수 있으면 함수를 호출하고, 할 수 없다면 함수를 종료하도록 구현하였다 네 방향을 확인할 때는 벽인지, 이미 청소를 하였는지를 확인해야 하고, ..

https://www.acmicpc.net/problem/1753 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 하나의 정점으로부터 다른 모든 정점까지의 거리를 구하므로 다익스트라 알고리즘을 사용하였다 다익스트라 알고리즘을 리스트(O(V^2))를 이용해서 간단하게 구현할 수 있지만, 힙을 사용한 우선순위 큐를 통해 구현하게 되면 시간 복잡도가 O(ElogV) 로 줄어든다 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하므로 cost가 가장 작은 정점부터 나올 수 있도록 하면 된다 이때 cost와 no..
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 파이썬의 dictionary를 이용하여 문제를 해결했다 다 풀고 나서 다른 사람들의 코드를 공부해봤는데 default dictionary 라는 좋은 방법을 알게 되었다 이것을 이용하면 나의 코드보다 훨씬 간단하게 작성할 수 있다 def find(id_list, dic, x, answer): # x를 신고한 아이디를 찾아 메일 발송 횟수 변경 for i i..

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 처음에 n, m의 제한을 보고 개수가 아니라 수의 제한인 걸로 착각하여 배열을 만든 후 해당 인덱스에서 값을 카운트하여 있는지를 확인하였다 인덱스에러가 발생하여 문제를 다시 이해하였다(문제 꼼꼼히 읽자..!) 이진 탐색을 이용해서 해당 값이 있는지 확인하는 방식으로 바꿔 풀었다 시간 초과 없이 해결! import sys input = sys.stdin.readline def binary_search(a..