본문 바로가기

C++17

[프로그래머스] 이진 변환 반복하기 c++ https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제에서 제시한 대로 1. 0을 제거 2. 0을 제거한 수의 길이구한다. 3. 길이를 구한 수를 이진수로 바꾼다. 를 반복하면 된다. 아래 코드대로 이진수로 변환하면 4는 001이 되는데 0을 제거할거니까 뒤집어주지 않아도 된다. #include #include using namespace std; vector solution(string s) { vector answ.. 2023. 5. 14.
[백준] 1987 알파벳 c++ 지나왔던 길에 있었던 알파벳이 없는 길로 가야한다. 최대로 지날 수 있는 칸 수를 구하면 된다. 풀이 dfs + 백트래킹 지나온 알파벳인지 체크 -> visit #include using namespace std; int graph[27][27]; bool visit[26]; int R, C; int ans; void dfs(int y,int x, int cnt) { int dx[] = { 0,1,0,-1 }; int dy[] = { 1,0,-1,0 }; visit[graph[y][x]] = true; for (int i = 0; i = 0 && nx >= 0)/.. 2023. 4. 16.
[프로그래머스] k진수에서 소수 개수 구하기 c++ https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 고민했던 부분 1. 소수 미리 구하기 - 에라토스테네스의 체 , 길이 몇 까지? 2. 그때 그때 소수 체크 3. 1,2섞어서 => 1번으로 하려다가 몇 번째 숫자까지 구할지 애매하고 그때 그때 소수인지 체크하는 것이 더 빠를 것 같아서 2번으로 했다. 1. 숫자로 만들어서 string? 바로 string? 처음에 string을 활용해서 k진수를 구하고 숫자 부분만 소수인지 판별하려고 했다. 이때 .. 2023. 1. 14.
[백준] 3980 선발 명단 c++ https://www.acmicpc.net/problem/3980 3980번: 선발 명단 각각의 테스트 케이스에 대해서, 모든 포지션의 선수를 채웠을 때, 능력치의 합의 최댓값을 한 줄에 하나씩 출력한다. 항상 하나 이상의 올바른 라인업을 만들 수 있다. www.acmicpc.net 브루트포스 알고리즘이 떠올랐는데 시간초과가 날까 걱정했다. 계산 횟수가 많을 것 같아서 고민해서 태그를 봤는데 브루트 포스 알고리즘이였다. 계산량 계산하는 것이 아직 어려웠다. 풀이 백트래킹을 통해서 선수들이 포지션을 가질 수 있는 모든 경우의 수를 계산한다. 주의 해야될 점은 아래 사진처럼 (0,0) , (1,1) , (2 , 2) 를 선택하고 3번째 선수로 넘어갈때 2번째 포지션은 이미 2번 째 선수가 가져가서 3번째 선.. 2023. 1. 7.