본문 바로가기

알고리즘/SW 역량 테스트

(39)
[17140] 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net import java.util.Scanner; import java.util.ArrayList; import java.util.Collections; // 17140 이차원 배열과 연산 public class Main { static int r, c, k, ROW, COL, TIME; static int[][] arr = new int[100][100]; static int[][] m..
[SWEA] 1953.탈주범 검거 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com import java.util.Scanner; import java.util.Queue; import java.util.LinkedList; class Solution { static int N, M, R, C, L, time, answer; static int[][] map; static Queue queue; static boolean[][] visited; static int[][] dir =..
[17144] 미세먼지 안녕! https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 왼쪽 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼 www.acmicpc.net import java.util.Scanner; import java.util.Queue; import java.util.Lin..
[17142] 연구소 3 얼마 전에 있었던 삼성SW역량테스트 문제입니다. 연구소 2 (https://daily-life-of-bsh.tistory.com/67) 문제와 브루트포스와 순열을 사용하여 BFS한다는 점은 같습니다. 다른점은 연구소 2 는 선택된 바이러스를 그냥 퍼뜨려서 바이러스가 꽉찬 시간의 최솟값을 구하면 되는 것이지만, 연구소 3 문제는 활성 바이러스가 비활성 바이러스 가 있는 칸으로 가면 비활성 바이러스가 활성 바이러스로 변한다는 점입니다. 그래서 연구소 2 문제는 선택된 바이러스만 2로 하고 나머지 바이러스는 0으로 바꿔서 최솟값을 구했지만, 연구소 3문제는 바이러스 2를 그대로 두면서 선택된 바이러스만 퍼뜨리면서 비활성 바이러스가 있는 자리도 바이러스가 있다고 보고 문제를 풀어야 했습니다. 예를 들어 연구소 ..
[14888] 연산자 끼워넣기 수열 사이사이에 주어진 연산자를 모두 끼워넣어서 계산하여 최댓값과 최솟값을 구하는 브루트 포스 문제입니다. 다른 시뮬레이션이나 DFS, BFS, DP 문제도 풀어야하는데 브루트포스만 풀어서 큰일났습니다........ 이번 문제가 제가 풀었던 다른 브루트 포스 문제와 다른 점은 다른 문제들은 조합을 이용하여 완전 탐색을 진행했는데, 이번엔 순열을 이용하는 점이 달랐습니다. 브루트 포스 문제는 많이 나오는데 조합과 순열, 재귀에 대해 완벽한 이해가 중요하다고 생각했습니다. 그래서 재귀로 순열을 출력하는 방법을 먼저 공부하고 문제를 해결했습니다. 더 간단하게 풀 수도 있을 것 같은데, 풀다보니 코드가 엄청 조잡한것 같습니다.....ㅋ 정답을 보고풀면 깔끔해지는데 정답을 안보고 푸니까 코드가 지저분해지는것 같습..
[14889] 스타트와 링크 이것도 SW 역량테스트 문제중에 쉬운편에 속하는 브루트 포스문제라고 생각합니다..... 이번에는 정답을 안보고 풀긴 했는데, 너무 조잡하게 푼 것 같습니다...ㅋ 이 문제도 입력 N이 20이하이기 때문에 N/2 명의 사람들이 팀을 이룰 수 있는 모든 경우를 출력해서 스타트팀과 링크팀의 능력치를 빼서 절댓값으로 최솟값을 구했습니다. [6603] 로또 https://daily-life-of-bsh.tistory.com/58 문제의 코드를 참고하면 어렵지 않게 풀 수 있는 문제였습니다. 1. 저는 팀의 member 의 번호를 list 라는 배열에 저장 했습니다. 처음에 보면 list[0] ~ list[N-1] 까지 숫자 1부터 N 까지 넣는데, N명의 사람의 번호를 list 에 저장한 것입니..
[14502] 연구소 그나마 역량테스트 기출문제 중에 쉬운편에 속하는 문제인데, 저는 너무 어려워서 https://whereisusb.tistory.com/219 블로그를 참고하여 풀었습니다. 아직 실력이 한참 부족한 것 같습니다............................ 처음에 문제를 읽고 어떻게 3개의 벽을 배치할까 생각했는데, 2를 주변으로 BFS를 해서 1과 만나는 부분에 벽을 배치하려고 했습니다. 하지만 3번째 예제를 보면 1이 없는 상황도 있기 때문에, 한참 문제만 보다가 블로그를 참고해서 힌트를 얻었습니다. 문제를 꼼꼼하게 읽는 것이 정말 중요하다고 생각했습니다............ 입력의 범위를 보면 N과 M 둘다 8보다 작기 때문에 매우 작습니다. N과 M이 8로 가장 클 때를 살펴보아도 64개중에 3..