만약 "000x00000x0x0xx0" 문자열이 주어진다면배열에 '000','00000','0','0','0이 저장 되어야한다.주어진 문자열에서 'x'가 아닌 문자들은 arr 문자열에 더해주어 하나의 문자열을 만들어준다.만약 'x'가 나왔을 때 arr이 빈 문자열이 아
모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우에 사용할 수 있는 알고리즘이다.노드의 갯수가 n일때 시간 복잡도는 O(n^3)이다.3중 반복문을 이용해서 위 점화식에따라 최단거리 테이블을 갱신해준다.'a에서 b로 가는 최소비용'과 'a에서 k를
이 문제는 한 도시에서 다른 도시까지의 최단거리 문제로 볼 수 있으므로 다익스트라 알고리즘 사용가능 하다.
문제 설명양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2 까지 정수를 인덱스 0부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.1 ≤ n ≤ 30시계방향 나선형으로 배치하기 때문에 방향을 우,
문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로...
문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solut
문제n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다.사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다.우선 다
문제해커 김지민은 잘 알려진 어느 회사를 해킹하려고 한다. 이 회사는 N개의 컴퓨터로 이루어져 있다. 김지민은 귀찮기 때문에, 한 번의 해킹으로 여러 개의 컴퓨터를 해킹 할 수 있는 컴퓨터를 해킹하려고 한다. 이 회사의 컴퓨터는 신뢰하는 관계와, 신뢰하지 않는 관계로
문제2x1 크기의 로봇이 이동해서 (n,n) 도달하기까지의 최소시간을 구하는 문제이다.로봇의 움직임의 모든 경우를 고려해서 이동할수있는 좌표를 구하고 bfs로 최소 시간을 구하는 문제이다.로봇 움직임을 구하는데 오래걸렸다,,ㅠㅠ
문제최소신장트리를 이용해 푸는 문제이다.핵심 아이디어는 최소신장트리를 2개 만들어야 하는 것인데 크루스칼 알고리즘으로 최소신장트리를 찾은 뒤 가장 비용이 큰 간선을 제거하면 된다.
문제가장 작은 카드 묶음끼리 먼저 합칠때가 최소의 비교를 할 때이다.heapq 우선순위 큐를 사용하여 가장작은 카드 묶음 두개를 꺼내서 합친 후 다시 큐에 넣는 과정을 큐안에 원소가 1개 남아있을 때까지 반복하면 된다.
stack을 사용하여 푸는 간단한 구현문제인 것 같다.내 머리가 나빠서 그런지 구현문제를 많이 헷갈려하는 것 같다..많이 풀어보자 ,,ingredient의 길이가 1,000,000 인것에 주의해서 풀이하면 된다.ingredient의 원소를 하나씩 for문으로 돌면서 s
key-value 쌍으로 빠르게 값을 찾는 것이 포인트파이썬의 경우 dictionary를 활용한다.문자열을 정렬하면 첫번째 인덱스 문자기준으로 정렬이 이루어지는 것을 활용한다.접두어를 찾는 문제이기 때문에119>119234 (찾음)119>234119 (이와 같이 뒤에나
프로그래머스-의상처음에는 조합을 찾는 문제라서 모든 조합의 경우의 수를 구해서 풀었다. 하지만 답안 제출을 했을 때 test case 1 만 시간초과가 나서 실패..아마 의상의 최대 수가 30일때 시간초과가 나는 듯 했다.알고보니 이 문제는 모든 조합의 경우의 수를 구
프로그래머스-가장 큰 수처음엔 문자열로 변환 후 정렬하면 성공할 줄 알았다..그러나 예를 들어 '30','3' 이 있을 때 정렬을 하면 내가 원하는 '330'이 아닌 '303'으로 정렬되어 틀린 답이 나오게 되었다. ㅠ원하는 방식으로 정렬하기 위해서는 문자열을 반복한
롤케이크 자르기처음 풀었을 때는 시간초과가 나서 실패했다..!길이가 최대 1,000,000이라서 슬라이싱 해서 풀면 시간이 초과되나 보다시간초과가 나지 않게 하기 위해서 dictionary를 사용했다. 저장공간을 두개 만든 후 값이 들어오면 기존 저장공간에서는 빼주고
문제 입력 풀이 > 처음에 문제 이해를 잘못해서 풀이를 이상하게 했었다. (3.현재 칸 주변 4칸 중 청소되지 않은 빈칸이 있는 경우 반시계 방향으로 90도 회전한다. 바라보는 방향 기준 앞칸이 청소되지 않은 빈 칸인 경우 한칸 전진한다.) 주변 4칸은 상하좌우 칸들을
타겟넘버DFS 재귀를 사용해서 풀이했다. 정답은 맞추었지만,, -,+를 동시에 재귀로 돌려서 굉장히 복잡하고 비효율적인 코드인 것 같아서 다른 풀이를 보면서 다시 푸는 과정을 진행했다.
게임 맵 최단거리BFS를 사용해서 금방 풀었지만 효율성 테스트가 다 틀려서 처음엔 문제를 틀렸다. 시간초과가 난 부분을 찾아야 했다.알고보니 visited부분에서 시간초과가 났다. 밑에 코드와 같이 방문한 노드를 찾게 되면 visited에 들어있는 노드들을 모두 방문하
네트워크처음에 union-find 개념이 생각나서 parent 노드를 자기 자신으로 초기화 한 후 연결되어 있으면 작은 노드번호로 parent를 업데이트 해주는 코드를 작성하였다.마지막에는 parent를 set으로 바꿔서 그 길이를 출력하면 답이라 생각했다. 하지만 t