본문 바로가기

Problem Solving/swea

(12)
[SWEA] 2105. 디저트 카페(Python) / Brute Force SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 1시간 32분 소요 사용 알고리즘 : Brute Force + Simulation 모든 경우의 수에 대해 다 검사해야 하는 완전탐색 문제이다. 마름모를 그릴 때 시작점이 되는 점은 행은 0부터 N-3까지, 열은 1부터 N-2까지의 영역 안에 들어야 한다. makeDistance(sr, sc) 함수에서 시작점의 위치 행, 열 좌표를 인자로 넣으면 시작점에서 대각선 사각형을 이루는 왼쪽, 오른쪽의 대각선 한 변이 될 수 있는 각각의 길이를 이중 포문으로 구한다. 이 때, 시작점의 반대편에 있는 꼭지점의 행 위치가 맵을 넘어가면 안 되므로, 그 경우는 if sr+l..
[SWEA] 2112. 보호필름(Python) / DFS swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 1시간 1분 소요 많이 풀어본 유형이라 큰 고민 없이 풀어낸 문제다. 사용 알고리즘 : DFS 조합 우선, 약품을 투입하지 않고도 성능검사를 통과하는 경우에는 0을 출력한다. 고 했으니, 성능검사 함수를 만들어줬다.(testPerformance()) 동일한 특성의 셀들이 K개 이상 연속으로 있는 경우에만 성능검사 통과 한 열의 동일 셀이 K 미만이면 즉시 False 리턴 이중 포문 통과하면 True 리턴하여 ..
[SWEA] 2117. 홈 방범 서비스(Python) swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V61LqAf8DFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 어렵지 않은 문제이나, 범위 설정하는데 꽤나 애를 먹었다ㅠㅠ # 1시간 10분 소요 두 가지 방법으로 풀어봤다. 첫 번째 방법은, 마름모의 모양을 BFS로 그리는 것이다. 먼저, 지름의 크기 K에 따라 값의 리스트를 미리 만들어놓는다. 맵 내의 모든 위치에서 bfs를 돌리며 중심으로부터 크기가 N+1이 될 때까지 마름모 내에 있는 집의 갯수를 구한다. 마름모의 지름이 1 커질 때마다 큐에 든 갯수만큼만 for문으..
[SWEA] 2382. 미생물 격리(Python) / Simulation swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV597vbqAH0DFAVl SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 47분 소요 사실 이 문제도 5번? 정도 푼 문제라서 풀 때마다 Pass까지의 시간이 단축되는 것 같다 ㅋㅋㅋ 특별히 사용한 알고리즘은 없고, 이차원 배열과 딕셔너리 자료구조를 이용했다. 겉으로는 Simulation이지만, 일일이 맵을 만들 필요는 없어 보였고, 이차원 배열을 만들어 M시간만큼 이차원 배열에 들어있는 미생물의 정보(위치, 미생물갯수, 방향)를 변화시키는 방식으로 접근했다. 그냥 생각나는대로 직..
[SWEA] 5658. 보물상자 비밀번호(Python) swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 18분 소요 삼성 SW역량테스트 모의 문제 중 가장 쉬운 난이도의 문제이다. 특별한 알고리즘 X 리스트 슬라이싱을 이용해 회전 처리 나온 값에 16진수 처리를 하면서 중복없이 리스트에 담아줌 내림차순 정렬 후 K번째 수 출력 파이썬 코드는 다음과 같다. T = int(input()) for tc in range(T): N, K = map(int, input().split()) A = list(input()) ..
[SWEA] 5650. 핀볼 게임(Python) / Simulation swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SW Expert Academy 삼성 SW 역량 테스트 모의 문제에서 평범한 난이도의 시뮬레이션 문제이다. 1시간 1분 소요 특별한 알고리즘 X, 있는 그대로 구현하는 simulation 문제 웜홀 정보 딕셔너리(wormhole_info)에 저장하여 웜홀 만났을 때 즉시 위치 바꿔줌 블록별로 상하좌우에서 왔을 때 어떻게 방향이 바뀌는지 change_dir에 정보 미리 저장해둠 파이썬 코드는 다음과 같다. # 상하..
[SWEA] 2383. 점심 식사시간(Python) / DFS swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SW Expert Academy 삼성 SW역량테스트 모의 문제들 중에 개인적으로 난이도 극상의 문제라고 생각한다. pass까지 3시간 조금 넘게 걸렸다. dfs 재귀로 조합 구현하여 계단 선택 완료 - comb() 함수(23분 소요) 이후 2시간 될 때까지 열심히 코드 짰는데 50개 tc 중 45개만 맞음.. 하.. 다음 날 아침 1시간 동안 디버깅해서 겨우 pass 받았다. 디버깅으로 고통스러웠지만 내 힘으로 ..
[SWEA] 4013. 특이한 자석(Python) / DFS swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeV9sKkcoDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 난이도가 낮은 편에 속하는 SW Expert Academy 삼성 SW 역량 테스트 모의 문제이다. 41분 소요로 워낙 많이 풀어본 문제라 오래 걸리지 않았다. DFS의 구조를 익힌 것이 도움이 됨 dfs 함수 안에서 num이 3보다 작을 때와 0보다 클 때를 모두 봐야 해서 둘다 if 조건문을 걸어줘야 한다! 오른쪽/왼쪽 방향 살피기(자성 같거나 달라서 회전할 수 있는지 여부 확인하며 재귀로 넘기기) 마지막에 자..