Algorithm 170

[백준 알고리즘/C++/그리디] 1449 수리공 항승

파이프에 구멍 난 곳을 수리하는 항승이.. 구멍 난 곳 좌우로 0.5만큼 테이프를 붙이는데, 테이프는 중간에 자를 수 없고 겹쳐서 붙일 수 있다 수리를 위해 써야 하는 테이프의 최소 개수를 구하는 문제 좌우로 0.5만큼 붙이니까 그냥 1이라 생각하자 3 4 5 에 구멍이 났고, 테이프의 길이 L=5라면 테이프 하나로 모두 수리할 수 있다 3 10 12 에 구멍이 났고, 테이프의 길이는 마찬가지고 5라면 테이프가 2개 필요하다 3 부분에 하나, 10 12 부분에 하나를 붙여주면 된다 구멍이 처음 난 곳을 start, 테이프 길이 안에 포함된 가장 끝 지점을 end라고 했을 때 start ~ end 사이의 구멍들은 모두 테이프 하나로 수리할 수 있다 L=5, 3 4 7 8 에 구멍이 났을 때 start=3,..

Algorithm/BOJ 2021.02.05

[백준 알고리즘/C++/그리디] 1783 병든 나이트

병든 나이트는 건강한 나이트와 달리 위와 같이 움직인다 나이트는 NxM 체스판의 가장 왼쪽 아래에 있는데, 체스판을 최대한 많이 돌아다니려고 한다 체스판의 크기가 주어졌을 때, 병든 나이트가 방문할 수 있는 칸의 최대 개수를 구하는 문제 N=1일 때, 즉 체스판의 세로길이가 1일 때는 나이트가 움직일 수 없으므로 1을 출력한다 N=2일 때는 나이트가 위와 같이 2와 3을 반복하며 움직일 수 있다 그러나 4회 이상 움직이면 1~4 이동법을 골고루 쓰라고 했으니 최대 세번 이동할 수 있다 → 최대 4, 최소 (m-1)/2+1칸 방문 (-1과 +1은 가장 처음 있었던 위치를 포함하기 위해) N이 3 이상일 때는 1~4 이동법을 모두 쓸 수 있다 그러나 M이 6 이하면 위와 같이 최대 4번 밖에 움직일 수 없다..

Algorithm/BOJ 2021.02.04

[프로그래머스/C++] 신규 아이디 추천

유저가 회원가입 시에 조건에 맞지 않는 아이디를 입력한다면 아래의 7단계를 거쳐 적절한 아이디로 만들어 return하는 문제 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new..

[프로그래머스/C++] 완주하지 못한 선수

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return하는 문제 completion의 길이는 participant의 길이보다 1 작다는 제한사항이 있다 즉 한명 빼고 모두 완주한다는 것 벡터를 모조리 뒤질 필요 없이 이름순으로 정렬해놓고 비교하면 된다 예를들어 마라톤 참가자가 eden, leo, kiki, adam이고 완주한 사람은 adam을 제외한 eden, kiki, leo라고 하자 participant = { adam, eden, kiki, leo } completion = { eden, kiki, leo } 로 정렬하고, part[i]와 com[i]를 비교하면서 일치하지 않으면 ..

[백준 알고리즘/C++] 9251 LCS

두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제다 문제에선 문자열이 주어진다.. 전에 풀고 적었던 글인데 설명이 여기 다 있으므로.. 소 잃고 뇌 약간 고치기 (백준 9251 LCS C++) LCS(Longest Common Subsequence, 최장 공통 부분 수열) : 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것 이름부터 기분이 상한다 최장 공통 부분 수열.. 그걸 왜?라는 느낌을 지울 수 pinevienna.tistory.com 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include using namespace std; string..

Algorithm/BOJ 2021.02.04