SWEA

    [SWEA] 1954 - 달팽이 숫자 (자바/Java)

    2차원 배열의 순회를 활용한 문제이다. while 문을 활용해서 해당 방향의 index를 채우고, array의 끝을 만나거나 이미 방문된 노드를 만났을 때는 방향을 바꾸어 주었다. 각 방향을 1~4로 두고 switch문으로 케이스를 정하였다. case 1: 오른쪽으로 이동: row는 그대로, col을 증가 case 2: 아래로 이동: col은 그대로, row를 증가 case 3: 왼쪽으로 이동: row는 그대로, col을 감소 case 4: 위로 이동: col은 그대로, row를 증가 그리고 1에서 더 나아갈 방향이 없으면 2로, 2에서 3으로 재귀적으로 snail함수를 수행하도록 하였다 그리고 함수를 실행하였을 때 이미 그 칸이 칠해져있다면, 모든 칸이 칠해진 경우이므로 return으로 종료조건을 주었..

    [SWEA] 1208 - Flattern (자바/Java) 배열, 우선순위 큐(힙)

    처음에는 ArrayList를 매번 정렬하는 방법으로 풀었는데, 우선순위 큐를 이용하면 더 쉽게 풀릴 것 같아서 두 가지 방법을 모두 써봤다. ArrayList int N = sc.nextInt(); // 덤프 횟수 ArrayList box = new ArrayList(); for (int i = 0; i 0 && dis > 1) { box.set(0, box.get(0) + 1); box.set(size - 1, box.get(size - 1) - 1); Collections.sort(box); di..

    [SWEA] 4789 - 성공적인 공연 기획 (자바 / Java)

    입력되는 string의 각 index는 0부터 시작해서 최소 index명 이상이 박수치고 있을 때 자신도 박수를 친다는 것을 뜻한다. 즉 string이 "110011" 일 때, 세 번째 0은 index가 2이고, 2명 이상 박수치고 있을 때 자신이 박수를 친다는 것이다. 이에 따라 문자열을 char 배열로 바꾼 후, 앞자리부터 박수를 치고 있는 사람의 수를 누적합하여 count 배열을 생성하였다. char[] people = sc.next().toCharArray(); int[] count = new int[people.length]; for (int i = 0; i < count.length; i++) { if (i == 0) count[i] = people[i] - '0'; else { count[i..

    [SWEA] 1220 - Magnetic (자바/Java)

    https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14hwZqABsCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이차원 배열의 같은 열에서, 1이 위에서, 2가 아래에서 만나는 경우의 수를 세면 된다. 이때 1이나 2가 중복되어도 교착 상태는 하나로 판단한다. 이를 체크하기 위해 같은 열에서 작은 값(위에 위치한 값)이 1인 경우 prev에 1을 저장하고, prev가 1이면서 2를 만날 때 교착 상태이므로 cnt를 하나씩 더해준다. 그리고 prev를 초기화해야 한다. 또한 한 열의 검사가 다 끝나면 prev를..

    [SWEA] 12712 - 파리퇴치 3 (자바/Java)

    [SWEA] 12712 - 파리퇴치 3 (자바/Java)

    https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AXuARWAqDkQDFARa 이차원 배열의 사방탐색과 팔방탐색 유형이다. 먼저 +형태를 훑고, 그 다음 x형태를 훑으며 가장 큰 sum의 값을 업데이트 해주었다. +형태의 dr, dc 배열과 x형태의 dr, dc배열을 각각 정의하여 루프를 돌아서 sum을 구하였다. package SWEA0729; import java.util.Scanner; public class SWEA_12712_파리퇴치3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = s..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]