본문 바로가기
반응형

분류 전체보기201

백준15651번 파이썬 N과M 3 #13-3) 백트래킹 내 풀이 def back(d,n,m): if d==m: print(*ans) return for i in range(n): if not visit[i]: ans.append(i+1) back(d+1,n,m) visit[i]=False ans.pop() if __name__=='__main__': n,m=map(int,input().split()) ans=[] visit=[False]*n back(0,n,m) 라이브러리 사용한 경우 from itertools import product n,m=map(int,input().split()) num=[]#n까지의 숫자 nnum=[]#m개의 nnum ans=[]#nnum안의 list 모든 조합 for i in range(n): num.append(i+1) for .. 2020. 10. 20.
백준15649번 파이썬 N과M #12-1) 백트래킹 내 풀이 def back (d,n,m): if d==m: print(*ans) return for i in range(n): if not visit[i]: visit[i]=True ans.append(i+1) back(d+1,n,m) ans.pop() visit[i]=False n,m=map(int,input().split()) visit=[False]*n ans=[] back(0,n,m) 정신없는 나만 알아볼 것 같은 풀이... 다른 풀이 (라이브러리 사용한 경우) from itertools import permutations n, m = map(int, input().split()) l = list(range(1, n + 1)) res = (list(permutations(l, m))) for i i.. 2020. 10. 19.
백준10814번 파이썬 나이순정렬 #11-9) 정렬 내 풀이 n=int(sys.stdin.readline()) ans=[] for i in range(n): x,y=map(str,sys.stdin.readline().split()) ans.sort(key=lambda x: (x[0])) for i in ans: print(i[0],i[1]) 2020. 10. 18.
백준1181번 파이썬 단어정렬 #11-8) 정렬 내 풀이 n=int(input()) letter=[] for i in range(n): letter.append(input()) letter=set(letter) letter=list(letter) letter=sorted(letter,key= lambda x: (len(x),x)) for i in letter: print(i) set 으로 중복을 없앤 후 lambda 로 정렬기준 2가지 주기 보니까 같은 함수를 좀 더 간략하게 표현할 수 있는 방법을 찾아서 살짝 바꿨다. 내 풀이(간략화) n=int(input()) letter=[] for i in range(n): letter.append(input()) letter=list(set(letter)) letter.sort(key = lambda x: (.. 2020. 10. 17.
백준11650번 11651번 파이썬 #12정렬-6)7)좌표 정렬하기 Q 11650) 내 풀이 11650번 n=int(input()) point=[] for i in range(0,n): point.append(list(map(int,input().split()))) point=sorted(point,key= lambda x: (x[0],x[1]))# 정렬 기준 1)x좌표 2)y좌표 for i in point: print(*i) Q)11651 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. -->위와 동일 단 정렬기준 y좌표로 바뀜 내풀이 11651번 import sys n=int(sys.stdin.readline()) ans=[] for i in range(n).. 2020. 10. 16.
백준1427번 파이썬 #12정렬-5)소트인사이드 내 풀이(초기) n=input()#n을 문자로 입력받음 ans=[] for i in n: ans.append(i)#ans 리스트에 넣고 ans.sort(reverse=True)#내림차순 sort ans="".join(ans)#join print(ans) 내 풀이(최종) n=sorted(input(),reverse=True) n=''.join(n) print(n) - n을 입력받으면서 바로 sort 2020. 10. 15.
백준2108번 파이썬 #12정렬-4)통계학 내 풀이 1(오답) from collections import Counter as cc n=int(input()) num=[int(input()) for x in range(n)] print(sum(num)//n) print(sorted(num)[n//2]) cnt=cc(num) center=cnt.most_common() if len(center)>1: if center[0][1]==center[1][1]: print(center[1][0]) else: print(center[0][0]) else: print(center[0][0]) print(abs(max(num)-min(num))) 오류 : 발생 원인: most_common() 한 center 리스트의 정렬순서 1. 빈도 기준 2. 값 기준 이렇게.. 2020. 10. 15.
백준1018번 파이썬 #11브루트포스-4)체스판 다시 칠하기 나의 코드 결론적으로 타인의 코드를 참조했다..^^ If문으로 난리남 def cheseu(b,n,m): cnt=0 for ni in range(n,n+8): for nk in range(m,m+8): if (ni+nk)%2==0 and b[ni][nk]=='B': cnt+=1 if (ni+nk)%2==1 and b[ni][nk]=='W': cnt+=1 change=min(cnt,64-cnt) return change n,m=map(int,input().split()) board=[input() for x in range(n)] ans=[] for i in range(0,n-7): for k in range(0,m-7): ans.append(cheseu(board,i,k)) print(min(ans)) 행.. 2020. 10. 15.
백준10989번 파이썬 #12정렬 -3)수 정렬하기3 내가 푼 코드 초기 내가 한거 (메모리 초과) import sys n=int(sys.stdin.readline()) num=[int(sys.stdin.readline()) for i in range(n)] arr=[0]*10001 for i in num: arr[i]+=1 for k in range(0,10001): if arr[k]!=0: for t in range(arr[k]): sys.stdout.write(str(k)+'\n') -num ,arr 리스트 2개를 썼기 때문에 메모리 부분에서 오류가 났다. -sys 라이브러리를 사용함으로써 메모리 용량을 줄였다. ※sys 라이브러리 자주 사용하는 것 num=int(sys.stdin.readline())#input sys.stdout.write(str(.. 2020. 10. 14.
반응형