본문 바로가기

프로그래머스

(110)
가장 긴 팰린드롬 programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr #include #include #include using namespace std; int solution(string s) { int answer=1; int n = s.size(); vectorcheck(n,vector(n,false)); for(int i=0; i
기둥과 보 설치 programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr #include #include #include using namespace std; bool c..
자물쇠와 열쇠 programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr #include #include using namespace std; bool checkAll(vectortotalArr, int m, int n){ for(int i=0;i
순위 - 플로이드 와샬 플로이드 와샬 알고리즘으로 푸는 문제입니다. 다익스트라 알고리즘의 경우에는 하나의 정점에서 출발했을 때 다른 모든 정점으로의 최단 경로를 구하는 것입니다. 참고: spacefordeveloper.tistory.com/172 다익스트라 알고리즘 # 최단 경로 최단 경로(shortest path)문제는 정점 u와 정점 v를 연결하는 경로 중 간선들의 가중치 합이 최소가 되는 경로를 찾는 문제다. 간선의 가중치는 경우에 따라 비용, 거리, 시간 등으로 spacefordeveloper.tistory.com 플로이드 와샬 알고리즘의 경우에는 '모든 정점'에서 '모든 정점'으로의 최단 경로를 구하게 됩니다. 다익스트라 알고리즘은 현재 노드에서 가장 적은 가중치로 연결된 노드를 골라서 탐색을 해 나간다면 플로이드는 ..
가장 먼 노드 programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr #include #include #include #include #include using namespace std; int bfs( vector&vlist, int target,int n){ queueq; vectorm(n+1,0); q.push(1); m[1]=0; while(!q.empty()){ int vertex= q.front(); q.pop(); for(int i=0; i
디스크 컨트롤러 programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr import java.util.*; class Solution { public int solution(int[][] jobs) { Arrays.sort(jobs,(o1,o2)->o1[0]-o2[0]); // 오름차순 정렬 PriorityQueue pq = new PriorityQueue((o1,o2)->o1[1]-o2[1]); //람다식을 이용해서 배열의 첫번째 자리수 ..
입국심사 programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr #include #include #include #include using namespace std; long long solution(int n, vector times) { long long answer = 0; long long total =0; sort(times.begin(),times.end()); long long s = 1; long long e = times[0..
이중우선순위큐 programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr #include #include #include #include using namespace std; vector solution(vector operations) { vector answer; priority_queueq; string s[2]; int minimum =0; for(int i=0; i>s[0]>>s[1]; if(s[0]=="I"){q.push(stoi(s[1]));} else{ if(s[1]=="1"&& q.size()>0){q.pop();} else if(s[1]=="-1"&&q.size()>0){minimum++;} } } if(q..