알고리즘문제
-
안녕하세여 호호만두에요 이번에 풀어본 문제는 프로그래머스 코딩테스트 연습문제에요 level2로 분류된 문제로 그리 어렵지 않은 문제입니다. level 낮은 것 부터 차례차례 풀어보고 있어요 프로그래머스는 백준과 다르게 세션 만료로 자꾸 로그아웃 되지 않아서 편하네요 ㅎㅎ 자동으로 로그인 되어있구요 그리고 백준보다 환경이 더 깔끔하고 코드도 실행해볼 수 있어서 더 편한것 같습니다 아무튼!!! 스택/큐의 탑 문제를 풀어봅시다!! 저는 이 문제를 스택이나 큐를 사용하지 않고 풀었습니다. 가장 오른쪽 인덱스 부터 더 큰 수가 나올때 까지 탐색하면 됩니다. 예를 들어 높이가 {6,9,5,7,4}라고 합시다. 그러면 맨 오른쪽 탑의 높이는 4입니다. 여기서 왼쪽으로 가면서 큰 탑을 찾습니다. 다음 4번째 탑이 7로..
[프로그래머스 코딩테스트 연습] level2 탑 문제 자바 풀이안녕하세여 호호만두에요 이번에 풀어본 문제는 프로그래머스 코딩테스트 연습문제에요 level2로 분류된 문제로 그리 어렵지 않은 문제입니다. level 낮은 것 부터 차례차례 풀어보고 있어요 프로그래머스는 백준과 다르게 세션 만료로 자꾸 로그아웃 되지 않아서 편하네요 ㅎㅎ 자동으로 로그인 되어있구요 그리고 백준보다 환경이 더 깔끔하고 코드도 실행해볼 수 있어서 더 편한것 같습니다 아무튼!!! 스택/큐의 탑 문제를 풀어봅시다!! 저는 이 문제를 스택이나 큐를 사용하지 않고 풀었습니다. 가장 오른쪽 인덱스 부터 더 큰 수가 나올때 까지 탐색하면 됩니다. 예를 들어 높이가 {6,9,5,7,4}라고 합시다. 그러면 맨 오른쪽 탑의 높이는 4입니다. 여기서 왼쪽으로 가면서 큰 탑을 찾습니다. 다음 4번째 탑이 7로..
2019.11.18 -
안녕하세요 호호만두에요 이번에는 스택을 이용하여 풀 수 있는 문제입니다!! 물론 스택을 이용하지 않을수도 있겠죠?? 스택/큐 문제로 분류되었다고 해서 모두 스택, 큐로만 쉽게 풀 수 있는것 아닙니다 아무튼!! 문제를 풀어봅시다!! 이 문제는 딱 봤을떄 쉽지 않겠구나 하는 뭔가 압박감이 있는데 문제만 잘 이해하니까 어렵지 않았어요 제가 푼 풀이법을 말씀드릴게요 우선 스택을 선언합니다. 그리고 stack에 쌓아갑니다. 단 '(' 문자 일때만 쌓습니다. 하지만 '()'로 바로 뒤에 ')'가 나온다면 쌓지 않습니다. 계속해서 '('만 쌓아가다가 레이저를 만나게 되면( '()' 를 만남 ) stack에 있는 '('의 개수를 세서 더합니다.( stack의 크기) ')'를 만나면 stack에서 하나를 pop하고 개수..
[프로그래머스] 쇠막대기, 스택(stack) 문제 자바 풀이안녕하세요 호호만두에요 이번에는 스택을 이용하여 풀 수 있는 문제입니다!! 물론 스택을 이용하지 않을수도 있겠죠?? 스택/큐 문제로 분류되었다고 해서 모두 스택, 큐로만 쉽게 풀 수 있는것 아닙니다 아무튼!! 문제를 풀어봅시다!! 이 문제는 딱 봤을떄 쉽지 않겠구나 하는 뭔가 압박감이 있는데 문제만 잘 이해하니까 어렵지 않았어요 제가 푼 풀이법을 말씀드릴게요 우선 스택을 선언합니다. 그리고 stack에 쌓아갑니다. 단 '(' 문자 일때만 쌓습니다. 하지만 '()'로 바로 뒤에 ')'가 나온다면 쌓지 않습니다. 계속해서 '('만 쌓아가다가 레이저를 만나게 되면( '()' 를 만남 ) stack에 있는 '('의 개수를 세서 더합니다.( stack의 크기) ')'를 만나면 stack에서 하나를 pop하고 개수..
2019.11.17 -
안녕하세요 호호만두에요 이 문제는 큐(Queue)를 이용하여 풀 수 있는 문제에요 자바에서 기본으로 주어지는 queue을 이용하여 풀면 됩니다. queue은 java.util.Queue와 java.util.LinkedList를 import하면 사용할 수 있습니다. 1. 트럭을 차례차례 다리에 놓기 위해서 큐에 넣습니다. 2. 트럭을 담은 weights 큐에서 맨 앞의 트럭을 뽑습니다.(직접 poll로 뽑지는 않고 peek로 값 확인) 3. total 변수를 이용하여 현재 다리 위의 트럭의 무게를 관리합니다. 4. 버틸 수 있는 다리의 무게(wieght) >= 현재 다리위의 트럭의 무계(total) + 현재 트럭의 무게(truck_weight)면 다리를 지나가게 합니다. 5. 그리고 시간을 increase..
[프로그래머스] 다리를 지나는 트럭, 큐(Queue)문제 자바 풀이안녕하세요 호호만두에요 이 문제는 큐(Queue)를 이용하여 풀 수 있는 문제에요 자바에서 기본으로 주어지는 queue을 이용하여 풀면 됩니다. queue은 java.util.Queue와 java.util.LinkedList를 import하면 사용할 수 있습니다. 1. 트럭을 차례차례 다리에 놓기 위해서 큐에 넣습니다. 2. 트럭을 담은 weights 큐에서 맨 앞의 트럭을 뽑습니다.(직접 poll로 뽑지는 않고 peek로 값 확인) 3. total 변수를 이용하여 현재 다리 위의 트럭의 무게를 관리합니다. 4. 버틸 수 있는 다리의 무게(wieght) >= 현재 다리위의 트럭의 무계(total) + 현재 트럭의 무게(truck_weight)면 다리를 지나가게 합니다. 5. 그리고 시간을 increase..
2019.11.15 -
이 문제도 역시 시뮬레이션 문제에요 삼성 코딩 테스트 문제는 시뮬레이션 문제가 많은것 같아요 구현 사항이 주어졌을때 그것을 그대로 구현할 수 있느냐 없느냐?? 그걸 많이 테스트 하나봐요 문제는 아래에서 풀어보실 수 있어요 https://www.acmicpc.net/problem/15685 이번 문제는 class 두개를 선언해서 코딩했어요 Point 클래스와 Dragon 클래스 Point 클래스는 말그대로 점에 대한 정보를 담는 클래스이고 Dragon 클래스는 드래곤 점의 정보와 방향 세대를 나타내요 맵에 처음 드래곤 커브의 시작점을 찍었는데요 (map[y][x] = 1) 여기서 문제의 x,y와 저희가 기본적으로 생각하는 xy의 축이 반대로 되어있어요!! (이 부분이 key point) 먼저 initDra..
[백준 알고리즘, 시뮬레이션] 삼성 코딩 테스트 문제 :: 15686번 드래곤 커브 자바 풀이이 문제도 역시 시뮬레이션 문제에요 삼성 코딩 테스트 문제는 시뮬레이션 문제가 많은것 같아요 구현 사항이 주어졌을때 그것을 그대로 구현할 수 있느냐 없느냐?? 그걸 많이 테스트 하나봐요 문제는 아래에서 풀어보실 수 있어요 https://www.acmicpc.net/problem/15685 이번 문제는 class 두개를 선언해서 코딩했어요 Point 클래스와 Dragon 클래스 Point 클래스는 말그대로 점에 대한 정보를 담는 클래스이고 Dragon 클래스는 드래곤 점의 정보와 방향 세대를 나타내요 맵에 처음 드래곤 커브의 시작점을 찍었는데요 (map[y][x] = 1) 여기서 문제의 x,y와 저희가 기본적으로 생각하는 xy의 축이 반대로 되어있어요!! (이 부분이 key point) 먼저 initDra..
2019.10.30 -
이 문제는 난이도가 조금 있다고 생각해요 처음에 어떻게 풀어야 될까 고민을 좀 많이 했어요 코드만 본다면 어려워 보이진 않지만 그동안 풀었던 브루트 포스 문제랑은 조금 달랐어요 cctv마다 방향을 4가지 바꿔서 돌려줘야 했기 떄문이었어요 문제는 아래 사이트에서 풀어보실 수 있어요 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감..
[백준 온라인 저지(BOJ), 브루트 포스] 삼성 코딩 테스트 문제 :: 15683번 감시 자바 풀이이 문제는 난이도가 조금 있다고 생각해요 처음에 어떻게 풀어야 될까 고민을 좀 많이 했어요 코드만 본다면 어려워 보이진 않지만 그동안 풀었던 브루트 포스 문제랑은 조금 달랐어요 cctv마다 방향을 4가지 바꿔서 돌려줘야 했기 떄문이었어요 문제는 아래 사이트에서 풀어보실 수 있어요 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감..
2019.10.28 -
이번에도 삼성 코딩테스트, 삼성 SW 역량 테스트 문제 풀이!! 풀어보고 싶으신 분은 아래의 링크를 참조해주세요! https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 이번 14889번 스타트와 링크 문제는 생각보다 되게 간단했어요 문제를 읽어보면 아시겠지만 모든 경우를 탐색(브루트 포스BF)를 통해서 가장 작은 값을 찾는 문제에요 우선 팀이 나눠질 수 있는 경우를 Combination함수를 통해서 구하면 되요. 이는 백트레킹을 이용하면 더 빠르게 풀 수 있어요 그때 각..
[백준 알고리즘, 브루트 포스] 삼성 SW 역량 테스트 문제 :: 14889번 스타트와 링크이번에도 삼성 코딩테스트, 삼성 SW 역량 테스트 문제 풀이!! 풀어보고 싶으신 분은 아래의 링크를 참조해주세요! https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 이번 14889번 스타트와 링크 문제는 생각보다 되게 간단했어요 문제를 읽어보면 아시겠지만 모든 경우를 탐색(브루트 포스BF)를 통해서 가장 작은 값을 찾는 문제에요 우선 팀이 나눠질 수 있는 경우를 Combination함수를 통해서 구하면 되요. 이는 백트레킹을 이용하면 더 빠르게 풀 수 있어요 그때 각..
2019.10.11