본문 바로가기

코딩 소양/알고리즘 문제

(12)
[백준 알고리즘] 2667번 단지번호붙이기(BFS) 이번에는 BFS, DFS를 활용할 수 있는 문제를 풀어봅시다. 먼저 간단하게 탐색만 진행할 수 있는 문제를 준비해보았습니다. 2667번 단지번호붙이기 이 문제입니다!!! 문제는 다음과 같습니다. 저는 BFS로 접근해보았습니다. 풀이 방식은 매우 간단하게 BFS의 이론적인 내용을 그~대로 사용하였습니다. BFS의 활용이라고 보면 되겠네요!!! 먼저 main 코드부터 살펴보겠습니다!! #include #include #include #include #include using namespace std; int N; int map[25][25]; int multiplex[700] = {0,}; int amountOfMultiplex; int main() { cin>>N; amountOfMultiplex = 3;..
[백준 알고리즘] 1026번 보물(정렬) 이번에 풀어볼 문제는 정렬을 활용한 문제로 백준의 1026번 보물 문제입니다. 문제는 여기 문제를 간단하게 보면 두 배열의 각 성분의 곱의 합(S = A[0]xB[0] + A[1]xB[1] + …)이 최소가 되도록 하는 거래네요. 풀이는 너무 간단하게..! 큰거에 작은거 곱해서 작게 만드는 것..!!! 간단..ㅎㅎ 저는 A를 오름, B를 내림차순 정렬해서 문제를 해결했습니다. 정렬 알고리즘은 퀵정렬을 사용해서 풀었습니다. 이건 제가 정리해본 정렬 알고리즘 글입니다..ㅎㅎ필력 제로..ㅠㅠ 제가 쓴 정렬 알고리즘ㅎㅎ - 선택,삽입정렬 제가 쓴 정렬 알고리즘ㅎㅎ -병합정렬 제가 쓴 정렬 알고리즘ㅎㅎ - 퀵정렬 코드는 다음과 같습니다!(C++사용했습니다.) #include using namespace std; ..
[프로그래머스] 다음 큰 숫자 찾기 이번에 풀어본 문제는 프로그래머스의 다음 큰 숫자문제입니다. 문제 url은 이거입니당 문제 n의 다음 큰 숫자라는건 n보다 큰 수 중에 2진수로 변환했을 때 n과 1의 개수가 동일한 것 중 가장 작은 수를 말합니다. 처음 문제를 보고 바로 생각난건 당연히 while… 알고리즘을 풀다 보면 뭔가 실행 시간 때문에 단순하게 생각난걸 사용하기가 꺼려지는..ㅠㅠ 그래도 만점이 나오네요!!! 처음 while을 사용한 것을 배척하고 조사해본 방법은 bit operation를 사용한 방법입니다. 역시 STL이건 뭐건 가장 중요한건 기초 지식인 듯... 사용한 bit operation의 특징은 숫자 n이 있으면 n-1과 and 연산을 하는 방법입니다. n&n-1을 하게 되면 LSB에 가까운 1이 없어지게 되는데, 이렇..
[프로그래머스] 올바른 괄호 찾기 이번에 풀어본 문제는 프로그래머스의 올바른 괄호 찾기문제입니다. 오랜만에 알고리즘을 푸니까 감이 하나도 안잡히네요..ㅠㅠ 문제 url은 이거입니당 문제 문제를 설명하자면 소괄호로만 이루어진 문자열이 있는데 이 문자열의 괄호가 올바르게 되어있는지 체크하는 문제입니다!! 막상 처음 봤을때 감이 하도 안잡혀서 뭘까...하다가 stack, queue로 푸니까 금방 풀더라구요..ㅎㅎ 풀이법은 ’(‘가 나올때만 push를 해주고 ‘)’를 다시 만나면 pop해주는 방법!을 사용했습니다. 물론 예외처리로 “))))))”이런 경우도 생각해야겠죠? 그래서 변수 하나를 두고 최초 빈 공간이었는지에 대한 지표를 설정해주었어요. 코드는 이렇게~ #include #include #include using namespace std..