본문 바로가기

softeer11

[Softeer / Level2] [21년 재직자 대회 예선] 전광판 https://www.softeer.ai/practice/info.do?idx=1&eid=624 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 www.softeer.ai 처음 생각한건 (ON + OFF)횟수 테이블을 만들어서 A 에서 B로 가는 서로의 숫자만 안다면, 점등 되어있는 불빛의 차로 어떻게 할 수 있지 않을까? 생각했었다. 해당 테이블을 모두 채우진 않았지만, 2차원배열로 만들어서 해볼만한 것 같다고 생각 했는데 너무 오래걸려서 중도 포기 했다.. 해답은 내 아이디어랑 비슷하게 딕셔너리 테이블을 만들어서 접근하는 방식 이었다. 내 방법보다 더 세련된 방식으로 아래와 같이 점등되는 위치를 인덱스로 잡아서 정의하는 것 이었다. 생각을 해봐야 하는 부분은 (자릿수가 알맞지 않는경우.. 2023. 10. 6.
[Softeer / Level2] [21년 재직자 대회 예선]비밀 메뉴 https://www.softeer.ai/practice/info.do?idx=1&eid=623 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 www.softeer.ai 문제가 복잡해보이지만 리스트 슬라이싱을 통해 비교하고 조건에 맞는다면 "secret" 을 출력해주면 된다. 주의할 점은, for문 돌릴 때 N-M+1 까지 돌려야 한다는 점? 처음에 N-M 까지라고 생각해서 오답처리 되었다.. 그리고, 한번 출력 이후로 굳이 확인할 필요없으면 exit() 으로 프로그램 종료를 하는식으로 작성했다. 소프티어 공식 풀이에서는 flag 주고 flag보고 출력을 결정하는 방식으로 풀었다. import sys input = sys.stdin.readline M, N, K = map(int, in.. 2023. 10. 5.
[Softeer / Level2] 지도 자동 구축 https://www.softeer.ai/practice/info.do?idx=1&eid=413 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 www.softeer.ai 전체 격자의 갯수가 4 -> 9 -> 25 ... 제곱으로 늘어나서 격자점의 갯수만 알면 해결할 수 있다. 점화식의 규칙만 알아내면 되는데, 내가 생각했을 때 (이전 격자 갯수 + 올림(이전 격자 갯수 / 2)) 하면 될 줄 알았는데 아니였다.. 해답풀이는 아래처럼 (이전격자 + 2 ^ (i - 1)) 로 구성된다. 1단계 : (2+1) ^ 2 2단계 : (3+2) ^ 2 3단계 : (5+4) ^ 2 4단계 : (9+8) ^ 2 ... import sys N = int(sys.stdin.readline()) S = [0.. 2023. 10. 4.
[Softeer / Level2] 8단 변속기 https://www.softeer.ai/practice/info.do?idx=1&eid=408 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 www.softeer.ai 간단한 리스트 비교문제이다. 조건에 알맞게 문자열을 출력해주면 끝 import sys input = sys.stdin.readline S = list(map(int, input().split())) if S == [1, 2, 3, 4, 5, 6, 7, 8]: print("ascending") elif S == [8, 7, 6, 5, 4, 3, 2, 1]: print("descending") else: print("mixed") 2023. 10. 2.
[Softeer / Level2] 금고털이 https://www.softeer.ai/practice/info.do?idx=1&eid=395 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 www.softeer.ai 분할 가능한 knapsack 문제이다. 분할이 불가능한 경우면 dp로 풀어야 하는데, 그렇지 않다면 그리디로 해결한다. 밸류값을 기준으로 소팅하고 제한된 W에 알맞게 가져가도록 코드를 구성했다. import sys total_weight = 0 total_value = 0 W, N = map(int, input().split()) S = [] for i in range(N): a, b = map(int, input().split()) S.append((a, b)) S.sort(key=lambda x: -x[1]) for.. 2023. 10. 1.
반응형