목록SWEA (25)
어흥
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18P2B6Iu8CFAZN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 이 문제는 Test가 불가능하므로 제출을 통해 검사해야 한다 - 다익스트라 알고리즘 혹은 플로이드-와샬 알고리즘을 통해 구현할 수 있다 - 테스트 케이스마다 초기화를 해야한다 2. 구현 [다익스트라 알고리즘] - 2차 배열에 간선의 정보를 저장해도 되지만, 시간이 많이 소요되므로 List형태로 간선의 정보를 저장한다 - 모든 정점에서부터 시작해 각 정점까지의 거리를 ..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXCjsn0KJzcDFAX0 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 일반적인 재귀로 할 경우 TLE가 발생한다 - 순차적으로 하나씩 더하면서 진행한다 2. 구현 - T,A,B에 대한 정보를 모두 입력받아서 List에 저장한다 - X의 값이 정해지면, DP[1] 에 X값을 대입하고 DP[N]까지 구한다. 모든 과정에서 MOD로 나눴을 때 나머지를 입력한다 import java.io.BufferedReader; import java.io..
문제 링크: https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AXEN3aEKDrsDFAVX SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 무늬와 숫자를 기록하는 배열을 각각 만든다 - 2번 째로 입력받는 카드에서 문자가 들어올 경우 따로 처리해준다 2. 구현 - Flush, Straight와 같이 모든 가능성에 대해서 Boolean값을 false로 지정하지만 Two의 경우는 Int로 설정하여 원페어와 투페어를 구분한다. - 로얄 스트레이트 플러쉬는 플러쉬인 경우에만 검사해본다. - 가장 ..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXGKdbqczEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 페르마의 소정리를 이용해서 풀어야 한다. - Pow연산시 분할정복을 이용해야 시간초과가 발생하지 않는다 2. 구현 - nCr = (n)!/{(n-r)!*(r!)}이 성립하며, 각 숫자에 대한 팩토리얼%MOD의 값은 미리 구해놓는다 -> 시간절약 - nCr % MOD = up/down의 식으로 바꾼다. up = n!%MOD, down = {(n-r)!%MOD *(r!)..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWaJ4g86WA4DFAUQ SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 위상정렬과 관련된 문제처럼 보이지만 DP와 관련된 문제다(메모라이즈 기법 사용) - DFS -> 시간초과 - 선수들은 1번부터 Node번호까지 있다 - 비트연산을 할 줄 모르면 고생한다(내가 그 예시다. 비트연산을 사용하지 않고도 할 수는 있지만 되게 더럽고 복잡해보인다. 그 시간에 비트연산을 공부하자) 2. 구현 - 첫 번째 접근: 위상정렬 위상정렬 알고리즘을 이용..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXGGNB6cnEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 숫자 하나씩 직접 할 경우 시간초과발생 - 10^15의 마지막 자리수를 Long으로 받아오고(Integer로는 10^15자체를 선언할 수 없다), Number 배열의 Index에 접근시 런타임에러 발생(이거 때문에 2번 틀렸다) - 각 자리수의 중요성 2. 구현 (1) 백준의 1019번 문제 "책페이지"와 푸는 방법이 거의 똑같다. (2) Start와 End를 입력받..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LwsHaD1MDFAXc SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 4방향 탐색 : X, 8방향 탐색: O - 2차 배열을 3개 사용하며 방문했는지 체크하는 Check[][], 정답 배열인 Mine[][], 입력받는 배열인 Arr[][]를 사용한다. 2. 구현 - 만약 입력받은 배열 Arr[][]의 값이 '*' 즉, 지뢰라면 현 위치 기준으로 8방향에 Mine배열에 1씩 더한다. - Mine배열을 처음부터 끝까지 살피면서 Check값..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWD3nB5q3T0DFAUZ SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - -1을 출력하는 경우가 언제인지 잘 살핀다(답이 여러개인 경우 '0 -1'을 출력하는 것으로 착각해서 테케 8번이 맞지 않았었다). - R,C,S가 나타낼 수 있는 수는 20 X 20 X 20이다. - 전역변수로 선언할 경우 초기화가 중요하다. 2. 구현 (추후에 코드를 좀 다듬을 필요가 있다) - DFS를 통해 R,C,S가 나타낼 수 있는 모든 수에 대해 Start..