본문 바로가기

프로그래머스172

[프로그래머스 lv3] 단어 변환 사용 언어 - Python3 문제 - 단어 변환 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐를 활용한 이중 for문 (정답 맞춘 여부 X) 1. 예외처리 원하는 target 값이 words 리스트에 없는 경우, 0을 return 한다. 2. q = deque() 활용 q.append([begin, 0]) = q에 [시작값, 변환횟수] 형태로 입력한다. 각 원소를 x, cnt로 저장하여 while 문에서 처리 words 리스트에서 한 단어씩 확인하면서 x 값과 비교해준다. x[j] != word[j] j번째 알파벳이 다른 경우, diff += 1.. 2023. 4. 22.
[프로그래머스 lv 3] 네트워크 사용 언어 - Python3 문제 - 네트워크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 재귀적인 DFS 문제 (정답 맞춘 여부 X) 1. visited 방문여부 리스트 생성 2. for문을 두개 만들어서 인덱스 com, connect를 비교 값이 1이고, 방문여부가 False인 노드를 또 DFS 재귀함수를 돌리는 구조 com 인덱스를 방문한 후, com에서 connect 인덱스를 방문하기 때문에 DFS(n,computers,connect,visited)로 바뀜 방문한 connect를 기준으로 또 새로운 노드를 방문하려고 하는 재귀함수이다. 3... 2023. 2. 15.
[프로그래머스 lv 2] 모음사전 사용 언어 - Python3 문제 - 모음사전 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 순열조합 완전탐색 or 규칙 찾는 문제 (정답 맞춘 여부 X) 정답 풀이 1. product(리스트, repeat=반복횟수) 중복순열 이용하기 product는 처음 알게되었다. product(리스트, repeat=반복횟수) : 중복 순열. 1부터 5까지 반복해야하기 때문에 for문으로 구현한다. words 빈리스트에 list(중복순열)을 append해서 모든 가능한 조합을 저장한다. 그 뒤 words리스트를 sort 정렬을 하고, index를 찾는다. ind.. 2023. 2. 15.
[프로그래머스 lv 2] 전력망을 둘로 나누기 사용 언어 - Python3 문제 - 전력망을 둘로 나누기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 완전탐색 BFS 문제 (정답 맞춘 여부 X) 정답 풀이 해당 와이어를 끊었을 때, BFS를 돌려서 한쪽 영역의 노드 수를 구한다. BFS) 해당 노드를 방문하지 않은 경우, 연결된 노드수 result를 구한다. 앞서 저장된 answer값과 현재 result로 구한 노드 간의 차를 비교했을 때, 더 작은 값으로 return 한다. # 정답 from collections import deque def bfs(start,visited,graph): q.. 2023. 2. 10.
[프로그래머스 lv 2] 카펫 사용 언어 - Python3 문제 - 카펫 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 규칙 찾는 완전 탐색 문제 (정답 맞춘 여부 X) 정답 풀이 규칙 찾기 (가로 축 a, 세로 축 b) (a-2)*(b-2) = yellow 2*a + 2*b - 4 = brown => yellow + brown = ab total = yellow + brown 이라고 했을 때, total / b = a # 정답 def solution(brown, yellow): answer = [] total = yellow + brown for b in range(1,tota.. 2023. 2. 7.
[프로그래머스 lv 2] 소수 찾기 사용 언어 - Python3 문제 - 소수찾기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 순열조합 생성 후 소수 판별하는 완전 탐색 문제 (정답 맞춘 여부 X) 정답 풀이 1. numbers를 하나씩 자르기 nums = [n for n in numbers] 2. 순열조합 생성 list(permutations(nums,i)) 3. 소수 판별 check True/False 4. set으로 중복 제거 후 개수 return # 정답 from itertools import permutations def solution(numbers): answer = [.. 2023. 2. 7.
[프로그래머스 lv 4] 징검다리 사용 언어 - Python3 문제 - 징검다리 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 징검다리를 하나씩 건너면서 두 돌 사이의 거리를 찾는 이분 탐색 문제 (정답 맞춘 여부 X) 정답 풀이 1. start,end 정의 돌 사이의 최소 거리는 1, 최대 거리는 distance 2. rocks 오름차순 정렬 마지막 돌과 도착지점 사이의 거리도 있으므로, rocks 리스트에 distance를 추가해준다. 3. start n인 경우, mid 값이 크기 때문이라 end = mid-1 아닌 경우, answer에 mid 값 입력한다. mid 값이 작기 때.. 2023. 2. 7.
[프로그래머스 lv 1] 모의고사 사용 언어 - Python3 문제 - 모의고사 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 수포자의 정답과 진짜 정답을 한개씩 비교하는 완전 탐색 문제 (정답 맞춘 여부 O) 정답 풀이 1. 수포자가 찍는 방식 num1,num2,num3 리스트로 저장 2. 문제를 맞춘 개수를 total1,total2,total3에 +1로 저장 3. 인덱스를 각 수포자의 패턴 개수로 나눠준다. 4. max 값이 total1,total2,total3과 같다면, answer에 append해준다. # 정답 def solution(answers): num1 = [1,2,3.. 2023. 2. 6.
[프로그래머스 lv 3] 입국심사 사용 언어 - Python3 문제 - 입국심사 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 심사한 수가 n이 될 때의 특정 시간을 찾는 이분탐색 문제 (정답 맞춘 여부 X / 코드 풀이) 어떤 값(mid)을 입국심사에 걸리는 times로 나눈 몫이 총 명수가 되어야 한다. mid//time == n 구하려는 시간을 기준으로 이분탐색을 진행한다. 최소 시간(start)은 min(times), 최대시간(end)은 max(times)*n로, start와 end 중간값인 mid 부터 검사를 시작하면서 mid//time == n 이 될때까지 while 반복.. 2023. 2. 6.
[프로그래머스 lv 2] 게임 맵 최단거리 사용 언어 - Python3 문제 - 게임 맵 최단거리 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 이동할 때마다 칸의 값을 더해가는 BFS 문제 (정답 맞춘 여부 X) 정답 풀이 1. dx,dy 상하좌우 이동 2. deque()에 (x,y) 튜플형태로 append 한 칸 이동하면, queue에 입력되고 while문으로 popleft된다. 3. queue가 없을 때까지 while문 반복 상하좌우로 이동 nx,ny 이동한 값이 0보다 작거나 len(maps)를 벗어나면 무시한다. continue 이동한 맵 값이 0이라면 무시한다. 1일 경우, 지금까.. 2023. 1. 31.