✏️ PS

    [ C++ ] 백준 1107: 리모컨

    안녕하세요? 수구리입니다. 이번 포스팅에서는 백준 문제 중에서 브루트 포스 알고리즘에 대한 문제를 풀어보려고 합니다. 조만간 브루트포스 알고리즘에 대한 포스팅도 추가로 해야겠네요. 간단하게만 적어보자면.. 브루트 포스(Brute Force)는 우리나라 말로는 "완전 탐색"이라고 합니다. 알고리즘 이론 책들을 보면 가장 앞쪽에 나와있는 단원에 속하고요. 보통 일단 문제를 접하게 되면 가장 먼저 이 방법을 통해서 문제를 해결해보려고 시도를 합니다. 이 알고리즘으로 대부분 해결이 되지만, 탐색을 해야 하는 범위가 많아지면 시간이 오래 걸려 효율성 측면에서 걸리게 되는 경우도 있죠. 아무튼 나중에 더 자세히 알아보도록 하고 백준 리모컨에 대한 문제는 아래 링크에 걸어두겠습니다. [ 문제 ] 백준 1107: 리모..

    [ Genetic Algorithm ] 유전 알고리즘을 통해 비밀번호를 뚫어보자!

    이번 포스팅에서는 유전 알고리즘을 통해 비밀번호를 찾는 알고리즘이다. 그전에 유전 알고리즘에 대해서 간략하게 설명을 하자면 다음과 같다. 말 그대로 유전 즉, 세대가 존재한다는 뜻이다. 이게 무슨 뜻이냐... 우선 랜덤으로 최초의 아이들을 생성한다. 그리고 그 생성된 아이들을 가지고 fitness (성능)을 측정한다. 성능을 측정할 때 적절한 점수를 부여하여 만약 점수가 높다면 해당 아이들을 선발해 낸다. 그리고 선발된 아이들을 교배하여 다음 세대를 만들어낸다. 그 과정에서 돌연변이도 추가하여 다음 세대를 만들어 내고 또 태어난 자식들을 가지고 성능을 측정하여 위의 과정을 계속 반복하여 수 세대를 걸쳐서 답을 도출해 내는 것이 유전 알고리즘이다. 그렇다면 파이썬으로 유전 알고리즘을 구현해보자. 함수가 많..

    [ python ] 프로그래머스: 수박수박수박수박수?

    안녕하세요? 수구리입니다. 이번 문제는 프로그래머스 문제를 가져왔습니다. 가볍게 문제부터 보고 오시면 될 것 같습니다!! 문제는 수박이라는 문자를 길이가 n만큼 만들어주면 됩니다! n이 짝수라면 ' ~~ 수박 '으로 끝나고, n이 홀수라면 ' ~~ 수 ' 로 끝나겠죠?? [ 문제 ] 프로그래머스: 수박수박수박수박수? https://programmers.co.kr/learn/courses/30/lessons/12922?language=python3 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 progr..

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

    안녕하세요. 수구리입니다. 이번 포스팅에서는 2021 KAKAO BLIND RECRUITMENT에 나왔던 문제를 풀어보려고 합니다. Level 1 문제이고, 기본 문자열 다루는 문제이지만 생각보다 조건이 많고 주어진 테스트 케이스 외에도 어떤 테스트케이스가 있는지 반례를 생각하면서 코딩을 했어야 했습니다. 그렇다면 아래 문제를 링크해두도록 하겠습니다. [ 문제 ] 프로그래머스: 신규 아이디 추천 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업..

    [ C++ ] 프로그래머스: 로또의 최고 순위와 최저 순위

    안녕하세요? 수구리입니다. 이번 포스팅에서도 프로그래머스 문제를 가져왔습니다~ 이 문제에서는 로또와 관련된 문제인데요. vector에서 find 함수에 대한 내용입니다. 문제는 아래 링크에 두었습니다 생각해야 할 조건이 있으니 천천히 읽어보고 오시는 것을 추천드립니다! [ 문제 ] 프로그래머스: 로또의 최고 순위와 최저 순위 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers...

    [ C++ ] 프로그래머스: 가운데 글자 가져오기

    안녕하세요? 수구리입니다. 이번 포스팅에서는 프로그래머스 문제인 가운데 글자 가져오기에 대한 문제입니다. 문자열을 다루는 함수에 대해서 알아보도록 하겠습니다~ [ 문제 ] 프로그래머스: 가운데 글자 가져오기 https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr [ 나의 풀이 ] #include #include using namespace std; string solution(..

    [ Average Filter ] 실시간으로 들어오는 데이터의 평균을 구해보자!

    안녕하세요? 수구리입니다. 이번 포스팅에서는 평균 필터 알고리즘(Average Filter)이라는 알고리즘을 소개하려고 합니다. 리소스 모니터링 프로젝트를 진행하고 있는 도중, 실시간으로 CPU 사용량을 가져오는데, 이 데이터를 가지고 1분동안의 평균 CPU 사용량에 대해서 계산이 필요하게 되었습니다. 처음에 생각했던 것은 각 프로세스별로 1초마다 CPU 사용량을 받아오고 있기 때문에 1분에 대한 평균을 구하기 위해서는 60개짜리 크기의 배열을 하나씩 만들어주고, 평균을 구하면 되지 않을까?라고 생각했습니다. 하지만 이는 매우 무식한 방법이고, 공간적으로도 낭비가 심하고 또한 첫 1분에 대한 CPU 사용량을 계산하기 위해서는 최소 1분이라는 시간을 기다려야 한다는 점입니다. 그렇다면 평균 필터 알고리즘을..

    [ python ] 프로그래머스: 문자열 내림차순 정렬

    안녕하세요? 수구리입니다. 이번 포스팅으로 풀어볼 문제는 프로그래머스의 문제인 문자열 내림차순 정렬입니다. 아래에 문제 링크 해두었으니 문제를 한번 읽고 와주시기 바랍니다! [ 문제 ] Level1: 문자열 내림차순 정렬 https://programmers.co.kr/learn/courses/30/lessons/12917 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr [ 나의 풀이 ] def solution(s): answer = '' res = [] for c in s: res..

    [ C++ ] 백준 1920: 수 찾기

    안녕하세요? 수구리입니다. 이번에 풀어볼 문제는 이분 탐색입니다. 이분 탐색은 한 배열에서 특정 요소를 찾기 위해서 사용되는 방법입니다. 이는 제가 요즘 즐겨보고 있는 터퀴즈에서 쉽게 접할 수 있습니다! 터퀴즈의 마지막 부분에서 퀴즈를 내는 부분에서 이용진 님께서 "~~ 산의 높이는 몇 m일까요?" 라던지 " ~~ 의 키는 몇 cm일까요?" 등의 문제를 낸 기억이 있습니다. 여기서 게스트는 1도 모르기 때문에 특정 숫자를 말하죠. 그러면 이용진 님께서는 답이 게스트가 말한 값보다 크다면 UP을, 아니라면 DOWN을 말하시죠! 이게 바로 이분 탐색 방법이라고 볼 수 있습니다. 생각보다 일상생활에서 흔히 볼 수 있죠?? 아무튼 각설하고 바로 문제 확인해 보시기 바랍니다! [ 문제 ] 1920: 수 찾기 ht..

    [ C++ ] 프로그래머스: 소수 만들기

    이번 포스팅에서는 소수를 판별하는 로직과, 재귀를 이용한 조합을 사용해서 배열 내의 값을 조작해서 소수를 만들 수 있는지 없는지에 대한 문제를 풀어보도록 하겠습니다. 문제는 아래 링크에 있습니다. [ 문제 ] 프로그래머스: 소수 만들기 https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr [ 나의 풀이 ] #include #include #include #define PICK 3 using na..