알고리즘/SW Expert Academy

    [SWEA - 1949] 등산로 조정

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq&categoryId=AV5PoOKKAPIDFAUq&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1.유형 dfs 2. 풀이 기능 구현 - 한칸 깎는 경우, dfs 자료구조 - Pair 클래스 3. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import..

    [SWEA - 8382] D4 - 방향전환

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWyNQrCahHcDFAVP&categoryId=AWyNQrCahHcDFAVP&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 bfs 2. 풀이 자료구조 - Pair클래스 구현, 큐 사용, 3차원 방문배열 기능 구현 - 이전 세로이동-> 다음은 가로이동, 이전 가로이동->다음 세로이동 이 문제의 핵심은 3차원 배열을 사용해서 방문 체크를 해주는 것이다 즉, visit[이전 방향이 가로 or 세로 인지][행][열] 이런 식으로 배열을 만든다. 그 ..

    [SWEA 2383] 점심 식사 시간

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 구현 2. 풀이 부분집합으로 사람마다 사용할 게단을 먼저 선택 우선순위큐를 사용해서 계단 까지 거리가 짧은 것을 기준으로 계산 타임 테이블 만들어 최소값 구하기 (2,3)의 사람을 기준으로 (2,5)계단을 사용할 때, 아래와 같은 타임테이블이 생긴다. 1 2 3 4 5 6 1 1 1 도착 대기 내려가는중 내려가는중 ..

    [SWEA - 1812] D5 - 수정이의 타일 자르기

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4yGVsKC0YDFAUx&categoryId=AV4yGVsKC0YDFAUx&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 우선순위큐, 구현 2. 풀이 크기가 가장 큰 타일부터 만들기 타일을 만들고 남은 짜투리들은 우선순위큐에 넣기 우선순위큐 때문에 크기가 가장 큰 타일이 먼저 나옴 위 과정을 반복 입력되는 값들을 내림차순을 만든다 문제를 풀때 자투리 타일을 우선순위큐에 저장해야 하는데 아래처럼 타일을 만들고 남은 파란색과 초록색을 저장..

    [SWEA - 2112] - [모의 SW 역량테스트] 보호 필름

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu&categoryId=AV5V1SYKAaUDFAWu&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 부분집합, 구현 2. 풀이 행 하나를 선택한 후, 아무것도 안하기, A약 투입, B약 투입 인 경우로 나눈다 위의 경우를 부분집합을 구한다 K개 만큼 연속하는지 판단 또한, 잘 구현하더라도 효율성 체크에서 걸릴 것이다. 이때, K==1인 경우 바로 0출력 재귀에서 cnt가 더 큰 경우 빽트래킹 연속을 판단할때 col하나라..

    [SWEA - 2814] D3 - 최장경로

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GOPPaAeMDFAXB&categoryId=AV7GOPPaAeMDFAXB&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 dfs, 인접리스트 2. 풀이 연결리스트를 만든다 visit배열로 방문지점을 체크하며 재귀를 돌린다 3. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayLis..

    [Swea - 1868] 파핑파핑 지뢰찾기

    1. 유형 구현, bfs 2. 풀이 완전탐색을 하면서 8방향에 지뢰가 없는 칸을 찾는다. 찾은 칸에서도 똑같이 8방향에 지뢰가 없으면 큐에 넣고 bfs를 돌린다 3. 코드 현재 좌표에서 8방향을 탐색해서 지뢰가 없어야지 bfs를 돌리는게 가능하다 bfs를 돌릴때도 8방향에 지뢰가 없어야 다음 좌표를 탐색할 수 있다. 위의 과정이 다 끝난 후 아직 true로 바뀌지 않은 곳은 무조건 선택을 해야 하는 곳이다. 전체코드 package swea; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; imp..

    [Swea - 5643] 키 순서

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXQsLWKd5cDFAUo& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 그래프 2. 풀이 인접리스트를 만든다. 이때, 주어진 그래프대로 인접리스트를 만들고, 그 반대 방향 인접리스트를 만든다. 이런 식으로 주어진 입력값과 반대 방향 리스트를 만든다. 4번 노드를 예를 들어보면, 나보다 작은 값은 3개가 있고, 큰 값은 2개가 있다. 3+2 =5 즉, 5는 전체 사이즈에서 나를 뺀 값이다. 그러므로 1부터 N번 노드를 돌면서 그래프를 탐색해서 나보다 큰값과 작은 값들의 합..

    [Swea - 1953] 탈주범 검거

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 유형 시뮬레이션 2. 풀이 현제 파이프가 위로 뚫려 있다면 다음 좌표의 파이프가 아래로 뚫려 있어야 한다. 3. 코드 package swea; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; imp..

    [swea - 10888] D4 - 음식배달

    swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AXUqw9zKYaoDFASe&categoryId=AXUqw9zKYaoDFASe&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제와 비슷하다. www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www..

    SWEA level3 - 3282 0/1 knapsack

    swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWBJAVpqrzQDFAWr&categoryId=AWBJAVpqrzQDFAWr&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 종류 동적프로그래밍 2. 풀이 dp의 특징을 잘 나타낸 문제다. 고려해야할 변수가 2개(부피, 가치)이기 때문에 2차원 배열을 사용해야 한다. 3. 코드 import java.util.Arrays; import java.util.Scanner; public class swea3282_knapsack { public static..

    SWEA level3 - 부분 수열의 합

    https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7IzvG6EksDFAXB&categoryId=AV7IzvG6EksDFAXB&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 재귀함수를 잘 나타내는 문제 처음 재귀호출은 arrIdx부분 arr을 선택하겠다는 뜻 두번째는 선택 안 하겠다는 뜻 solution(arrIdx + 1, sum + arr[arrIdx]); solution(arrIdx + 1, sum); /* -- 재귀사용 */ #include using namespace std; i..