백준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.
백준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.