일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Floyd
- professional
- 코딩테스트
- 최단경로탐색
- backend
- Spring
- BFS
- SW역량평가
- 최소신장트리
- BOJ
- 스프링
- dp
- Framework
- 백엔드
- SW역량테스트
- 백준
- 알고리즘
- 최단경로
- 골드5
- java
- swea
- 트리의지름
- 순열
- 완전탐색
- D4
- 1251
- 골드3
- 실버1
- 그래프
- 중복순열
- Today
- Total
목록swea (14)
공부 기록장

이 문제는 SWEA에 있는 점심 식사시간이라는 문제이다. 문제를 가지고 오긴 했지만, 문제가 너무 길어서 예시를 하나 밖에 못 가지고 왔다. 혹시 전체 문제가 궁금한 사람들은 이미지를 클릭하면 문제 페이지로 넘어가도록 링크를 걸어두었으니 들어가보세용! 이 문제도 어떻게 풀까 고민을 많이 했던 문제이다. 처음에는 가까운 계단에 PriorityQueue를 이용해서 넣어볼까 했는데 만약 한 곳으로 사람이 몰려서 대기시간이 길어지거나 계단에는 3명까지만 올라갈 수 있는데, 현재 계단에 몇 명 있는지 카운트하기가 어려울 것 같았다. 그래서 이런 저런 시도를 다 해보다가 결국 모든 집합을 다 구해보는 것을 택했다. 1. powerset을 이용해 각 사람이 0번 계단으로 갈 지, 1번 계단으로 갈 지 정해주기(pow..

이 문제는 SWEA professional 키 순서 라는 문제이다. 개인적으로 접근이 어려웠던 문제였다. 그래프를 쓰면 되겠다는 건 알았는데, 도대체 어떻게 활용해야 할 지 감이 잘 안왔다. 선생님께서 방법을 알려주셨는데, 1) 정보들을 인접행렬에 넣기 2) 나보다 작은 애들 찾기 3) 나보다 큰 애들 찾기 4) 나보다 작은애 + 큰 애 = 전체 학생수 -1 이면 내 키 번호 알 수 있음 이 로직으로 풀면 된다. 사실 뭔가... 혼자 엄청 헤메고 있었는데 생각보다 간단한 문제인 걸 알고 놀랐다. 더 연습해야겠따.. package hw_0421; import java.util.Scanner; public class 키순서 { //SWEA D4 static int N,M, ans, tcnt, scnt; st..

이 문제는 SWEA 모의 SW 역량테스트 문제이다. 이 번에도 문제가 엄청 길다. 근데 예시들이 들어져 있어서 그렇지, 읽어보면 문제 자체는 이해하기 쉬운편이다. 어떻게 계산을 해야하나... 고민을 하다가 이런 로직을 세웠다. 1) 부분집합을 이용해 어디를 바꿔볼 지 정하기 (powerset) 2) A혹은 B로 바꿔보기 (change) 3) 필름이 만들어졌는지 확인 (check) 4) 원상복구 (back) 이 로직을 모든 부분집합에 대해서 실행해주면 된다. 다행히 시간초과가 나지 않고 잘 통과 됐다. :) import java.util.Scanner; public class Solution { static int D,W,K,ans; static int[][] map; static int[][] copy;..

이 문제는 SWEA의 D4 레벨, [Professional] 구간 합 이라는 문제이다. 이 문제도 수업에서 다뤘던 내용인데, 선생님께서 식 안 알려주셨으면 무조건 틀렸을거다. 실제로 내 마음대로 풀었다가 시간초과 나서 실패했다. import java.util.Scanner; public class 구간합 { static long start, end; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int tc=1; tc

이 문제도 싸피에서 CT시간에 다뤘던 문제이다. 문제만 보면 참 쉬워보이는데, 페르마의 소정리를 이용하라고 하셨다. 페르마의 소정리란 p가 소수이고, a가 p로 나누어지지 않는 정수 일 때 성립하는 법칙인데, 간단하게 이 두 개의 식으로 설명할 수 있다. 소수 어떤 수의 p승을 소수 p로 나머지 연산을 하면 어떤 수가 나온다는 것이다. 예를 들어서 3으로 생각해보면, 3^1 = 3 (mod 5) 3^2 = 4 (mod 5) 3^3 = 7 (mod 5) 3^4 = 1 (mod 5) 3^5 = 3 (mod 5) 이 패턴이 반복된다. 어떤 수의 제곱수에 소수 p를 이용해 나머지 연산을 취한 값은 소수 p-1개의 패턴으로 반복된다는 정리이다. 사실 처음에는 도대체 이 정리를 이용해서 이 문제를 어떻게 풀으라는건..

이 문제는 SW 아카데미 D4 레벨 문제이다. 싸피 수업을 들으며 CT시간에 접한 문제인데, 간단해 보였는데 생각보다 어려웠다. 처음에는 BFS를 이용해서 접근했는데, 이렇게 풀면 바로 시간초과가 난다고 해서 다른 방법을 고민하던 중 선생님께서 다른 방법을 알려주셨다. 사실 이렇게 간단한 걸 보고 좀.. 당황했다. 풀이를 해 보자면, sC와 sR 은 각각 시작 좌표, fC와 fR은 도착 좌표이다. x와 y는 도착점에서 시작점을 빼 준 값을 절댓값으로 처리해 준 것인데, (0,0) 부터 (x,y)까지 가는 것으로 계산하기 위해서이다. 여기서 t는 x좌표와 y좌표에서 가장 가까운 y=x 상의 좌표를 의미한다. 이 점을 구하는 이유는, (t,t)에서는 가로로 먼저 출발하든, 세로로 먼저 출발하든 값이 같기 때..

이 문제는 SWEA에 있는 모의 SW 역량테스트 탈주범 검거 문제이다. A형 정도의 구현력을 요구하는 문제라고 한다. 보다시피 문제가 좀 길다ㅠ 그래서 지난번 처럼 링크로 가지고 올 까 했는데, 여기서는 문제를 같이 보는게 편할 것 같아 캡쳐해왔다. 이 문제는 조건이 많아서 까다로운 문제이다. 각 파이프마다 갈 수 있는 곳이 달라서 그 부분 처리를 해주는데 조금 애를 먹었다. 그래도 조금만 생각해보면, 전역변수를 이용해 if문을 왕창 쓰는 것을 막을 수 있다. static int[][] dr = {{0,0,0,0},{-1,1,0,0},{-1,1,0,0},{0,0,0,0},{-1,0,0,0},{0,1,0,0},{0,1,0,0},{-1,0,0,0}}; //1번 - 7번 static int[][] dc = {..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 SWEA 아카데미 모의 SW 역량테스트 문제이다. 이 문제가 SW역량평가 Advanced, 우리가 알고 있는 A레벨 정도의 문제라고 한다. 로직 자체가 어렵기 보다는, 구현을 잘 해내야 하는게 조금 어려웠다. 처음에는 한번 쏜 위치에는 공을 못 쏘는 줄 알았는데, 똑같은 곳에 또 쏠 수 있어서 그거 고치느라 시간이 조금 걸렸고, 맵을 깨진 블럭들을 없애고 남은 블럭들을 옮겨주는 과정에서 ..