목록프로그래머스 (24)
Study hard

programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr [풀이] 노란 격자의 모든 가능한 경우에 대해 노란 격자를 감싸는 테두리의 개수가 brown과 같은지 비교하는 방법으로 풀었다. #include #include using namespace std; int Brown,Yellow; vectorAnswer; bool getRowCol(int row, int col){ int tmp=row*2+col*2+4; if(Bro..

programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 � programmers.co.kr [풀이] dfs순열을 이용하여 나올 수 있는 모든 수에 대해 소수인지 확인하고, set 자료구조를 써서 중복값이 없도록 하였다. 소수는 에라토스테네스의 체를 사용하여 미리 1이상 9999999이하의 모든 소수를 찾아두었다. 2020/06/18 - [백준/여러가지 문제들] - (c++)백준 1929번: 소수 구하기 (c++)백준 1929번: 소수 구하기 htt..

programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 �� programmers.co.kr [풀이] 완전탐색으로 각각 학생의 답안과 정답을 비교하여 맞은 개수를 세고, 가장 많이 맞은 사람을 찾는 문제였다. 가장 높은 점수를 받은 사람을 찾을 때는 Max변수에 최댓값을 저장해두고 비교하면서 같으면 벡터에 넣고, 더 높은 점수가 나오면 벡터를 비운 다음 그 학생의 번호를 넣는 방식으로 풀었다. #include #include #include //#include ..

programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr [풀이] dfs로 words배열에서 현재 단어와 한글자만 다른 단어를 찾아 현재 단어가 target단어가 될 때까지 탐색하는 방법으로 풀었다. 단계가 현재까지 구한 최솟값보다 커질 경우 가지치기 하여 시간을 단축하였다. #include #include #include using namespace std; vectorWords; int..

programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr [풀이] bfs탐색으로 풀었다. 예제를 보면 컴퓨터 1대만 있어도 네트워크로 치는 것을 알 수 있다. 그래서 N번 for문을 돌리며 아직 네트워크임을 체크하지 않은 컴퓨터가 있으면 bfs로 이어진 네트워크 모두를 체크하고, 네트워크의 개수는 bfs가 호출되는 개수로 구하였다. #include #include #include using namespace std; int..

programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr [풀이] dfs 중복 순열을 구하여 푸는 문제였다. -는 0, +는 1로 표시하여 0과 1로 이루어진 numbers의 크기와 같은 중복 순열을 구하고, 각 경우에 대해 연산 결과와 target값을 비교하였다. 중복 순열: n개의 수 중 r개의 수를 중복을 허용하여 한 줄로 나열하는 경우의 수. 순서가 다르면 다른 경우로 침..