PS
-
백준1339) 단어 수학PS 2022. 6. 3. 10:58
Python3 뭔가 브루트 포스로 풀어야 할 것 같은 문제였는데 띵 하고 아이디어가 떠오름 문자에 10**(자릿수) 를 하여 저장해놓고 내림차순 정렬 후 9부터 넣어주면 된다. dic = dict(sorted(dic.items(),key=lambda item:item[1],reverse=True)) 이놈으로 dict를 정렬해서 쉽게 풀 수 있었당 n = int(input()) arr = [] dic = {} for i in range(n): s = input() l = len(s) for j in range(l): if s[j] in dic.keys(): dic[s[j]] += 10**(l-j-1) else: dic[s[j]] = 10**(l-j-1) dic = dict(sorted(dic.items()..
-
백준1941 ) 소문난 칠공주👩🏼🦰 pythonPS 2022. 6. 3. 10:58
롤이 재미 없고 심심해서 오랜만에 한 문제 풀어봤다. ps 실력은 오랜 시간 꾸준히 키워야 성장하는데 하락은 한 순간이다. 스키 타는 기분 백트래킹 문제인데 가지치기 효과가 클 것 같은 느낌이 들었다. 쌩으로 돌렸을 때 시간초과가 나는 지는 모르겠음. 아니 근데 왜 상대편도 내편이 되는지는 잘 모르겠음. 가지치기 Y가 S보다 많아지는 순간 dfs 종료, Y개수만 저장해서 인자로 계속 넘김 선정해야하는 칠공주가 해당 dfs 에서 가지 못한 나머지 칸들보다 많으면 종료 좀 더 클린한 코드 5x5 배열을 계속 이용하지말고 1차원 arr[25] 로 하면 좀 더 깔끔하고 코드 짜기 쉽다. y = idx//5 x = idx%5 이런 식으로 나중에 인접 체크시 사용할 수 있음. 칠공주의 조합도 visit 에 하나씩 ..
-
백준20056 ) 마법사 상어와 파이어볼🧨PS 2022. 6. 3. 10:57
삼성 코테 타입의 문제다. 그 중 치사하지 않은 편. 좌표 배열 만들어 할라했는데 N이 50이면 매 번 2500회 돌아야하니까 패스. 파이어볼의 위치를 dict로 만들어 구현했다. dict로 구현해도 괜찮은 이유는 파이어볼이 움직일 때 제약사항이 하나도 없다. 범위를 벗어나는 것은 나머지 연산으로 쉽게 해결 가능. dict를 하나만 쓰면 움직인 후 위치가 기존 위치와 겹칠 수 있어 move 함수 내에서 post_dic을 선언하고 리턴하는 방향으로 구현함 n,m,k = map(int,input().split()) fb = [list(map(int,input().split())) for i in range(m)] diry = [-1,-1,0,1,1,1,0,-1] dirx = [0,1,1,1,0,-1,-1,-..