4673 셀프 넘버셀프 넘버는 어떤 수에 그 각 자리 수를 더해 만들 수 있는 수가 아닌, 즉 생성자가 없는 수처음에는 셀프 넘버가 11씩 증가하는 등차 수열인줄 알고 단순히 20 부터 11씩 더했는데,생각보다 예외가 굉장히 많았다.그래서 반대로 아예 1부터 10000
2108번주어진 수 배열에 대해 네가지 값 구하는 문제.쉽게 봤는데 생각보다 확인해야 할 부분이 많았다.산술평균의 경우 반올림할 때 cmath의 round() 함수를 사용평균 값이 음수가 됐을 때, int 인 수를 나누면 문제 생긴다ex) round(-9/5) 하면 -
1475번간단한 문제인데 어렵게 생각해서 오래 걸렸다.문제를 요약하면 주어진 수에서 중복되는 자리수를 구하는 것인데 이때 6이나 9인 경우는 뒤집어 쓸 수 있기에 한 번씩은 예외가 된다.처음 생각한 풀이는,string으로 입력을 받고,for 문으로 i번째 인덱스에 해당
1316번주어진 문자열에서 중복된 문자가 연속으로 된 경우가 2번 이상이면 그룹단어가 아니다.string의 erase,unique를 활용하면 쉽게 풀린다.unique로 연속된 중복원소를 뒤로 보내고 erase로 쓰레기 값을 제거하면 된다.전체 코드
프로그래머스 - 카펫출처처음엔 brown 조건을 생각하지 않고,yellow에 해당하는 수의 약수를 구한 후 곱했을 때 yellow수가 나오면서 차이가 최소인 한 쌍의 약수를 찾아 각각에 2를 더해주고 answer 벡터에 넣었다.이렇게 한 이유는주어진 예시와 내가 생각한
간단하게 DFS 후 연결 요소의 개수 구하면 된다.이 때 연결 요소를 구하는 방법은 두가지가 있는데,main 안에서 for문을 이용해 구하거나,함수를 만들어 구하는 방법이다.큰 차이는 없다.주의할 점은 벡터를 이용해 인접리스트 만들 때,2차원 벡터를 사용해야 한다는 점
14888번 연산자 끼워넣기주어진 수와 연산자로 가능한 모든 경우 실행한 후 최댓값,최솟값 구하는 문제다.모든 경우 확인해야 하므로 완전탐색+중간중간에 연산자 바꾸면서 계산하므로 되돌아 와야함\-> 백트래킹 필요BacktrackingDFS와 코드가 유사하지만 이전 상태
1182번 부분수열의 합전체 중 몇개인지 구해야하므로 모든 경우 다 따져야 한다 (완전탐색)dfs 나 재귀 이용해 탐색.모든 정점에서 포함 할지 말지 정해야한다.}int main(){ cin >> n >> s; for (int i = 0; i < n;
6603번 로또주어진 k개의 수에서 중복하지 않고 6개를 골라 출력하는 문제.조합은 dfs로 재귀적으로 구하거나, next_permutation 사용해서 구할 수 있다.
거리두기 확인하기\["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP","POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP","PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX","OOOXX"
고득점kit - 네트워크간단하게 그래프의 연결요소 개수 구하기 문제.dfs 함수 구현하고, 모든 노드에서 탐색하면서 중간에 중지 되는 부분 생기면 개수 더한다.