목록알고리즘 PS (108)
DevKim
programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr [문제 접근] - 암호화 되어있는 정수배열을 각각 2진수로 바꿔준 뒤, 두개의 배열을 비교해서 조건에 따라 문자열에 추가 [알고리즘] - 완전탐색 [코드] def solution(n, arr1, arr2): answer = [] for i in range(n): n1=arr1[i] n2=arr2[i] # n자리수의 이진법으로 바꾸기 a='' b='' result='' ..
programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr [문제 접근] - 파이썬의 정규표현식 re를 이용해서 각 단계를 하나씩 한줄로 구현 [알고리즘] - 문자열 처리 (구현) [코드] import re def solution(new_id): answer = '' i=0 #1단계 new_id=new_id.lower() #2단계 new_id=re.sub("[^0-9a-z_.-]","",new_id) #3단계 new_id=re.s..
programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr [문제 접근] - 주어진 인형을 하나하나 뽑아서 큐에 넣어주고 가장 최근에 들어간 인형 두개를 비교해서 같으면 삭제해주고, 다르면 다시 넣어주는 방식으로 접근 [알고리즘] - 구현 [코드] from collections import deque def solution(board, moves): que=deque() cnt = 0 for i in moves: for List in board: if List..
www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net [코드] import sys N=int(sys.stdin.readline().rstrip()) for i in range(N): n=int(input()) List=[0]+list(map(int,sys.stdin.readline().rstrip().split())) visited=[0]*(n+1) group=1 for j in range(1,n+1): if visited[j]==0: while visited[j]==..
www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 www.acmicpc.net +) 틀렸습니다 ! 가 반복적으로 나오는 사람들을 위한 반례 case case 1) 11 3 1 2 3 3 2 1 3 2 3 4 4 1 2 2 3 3 4 4 2 3 2 2 1 3 2 4 4 2 1 3 2 4 3 4 1 5 2 1 5 1 2 5 2 1 2 2 5 4 3 1 2 4 3 2 3 4 4 2 3 1 4 3 4 1 2 3 3 1 2 2 3 3 1 2 1 1 2 정답 : 'YES', 'YES',..
www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net from collections import deque import sys def DFS(i, j): que = deque() if i = h or j = w: return None else: if List[i][j] == 1: que.append([i, j]) List[i][j] = 0 while que: p = que.popleft() xx = p[0] yy = p[1..
www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 정답률이 꽤 낮은 문제이지만, dfs/bfs를 잘 이용하면 그리 어렵지않은 문제이다 from collections import deque import sys def DFS(i, j): que = deque() if i = n or j = n: return None else: cnt = 0 if List[i][j] == 1: que.append([i, j]) List[i][j] ..