본문 바로가기

알고리즘/프로그래머스22

[프로그래머스] 단어 변환 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS로 간단하게 풀어보자! 주요 아이디어 가장 짧은 변환 과정 -> 최단 경로 -> BFS를 떠올려야 한다 begin을 queue에 넣고 시작 하나씩 popleft() 하면서 순회 visited에 방문 처리 한 글자가 다른 단어로만 변환 가능하므로, 인접 노드는 한 글자만 다른 것들 넣기 최단 경로이므로 target과 가장 가까운 순서대로 pop해야 함 변환 안될 경우 0을 반환해서 예외처.. 2024. 4. 11.
[프로그래머스] 행렬 테두리 회전하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 잘 읽어보고 해결만 하면 되는 문제이다. 주요 아이디어 지정된대로 숫자를 차례대로 넣어서 원래 배열을 만들어주자 arr에 저장된 value를 하나씩 swap하면서 시계 방향으로 회전 swap할 전체 횟수를 지정해주고, dx, dy로 회전 방향을 정해주면 된다 코드 구현 (Python 3) 더보기 def solution(rows, columns, queries): arr = []; answer.. 2024. 4. 11.
[프로그래머스] 등굣길 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level 4로 나와있지만, 학창 시절에 배웠던 걸 잘만 기억하면 Level 2 이하의 난이도가 된다. 주요 아이디어 최단 경로 경우의 수를 구하는 문제를 기억하는가? 기억이 안나면 보고 오자. (링크) 간단하게 요약하자면, x[i][j] 까지 도달하는 경우의 수는 x[i-1][j] 경우의 수 + x[i][j-1] 경우의 수이다. 예시. 예시로 나온 문제의 최단경로 경우의 수를 체크하면 다음.. 2024. 4. 8.
[프로그래머스] 조이스틱 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42860# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이게 왜 Level 2이지? 알 수가 없다 주요 아이디어 Greedy 문제 유형에 나와있어서, 한 글자마다 최적의 선택을 하면 solution을 보장하는 문제라고 생각했다 상하 이동은 그냥 target이 A에 가까운지 Z에 가까운지에 따라 결정 좌우 이동이 중요하다 예시 AAAAN 바꿔야 될 position 선택 ->: 4 EROENJEREON 처음은 중간 위치 (len(str) // 2).. 2024. 4. 7.
[프로그래머스] 튜플 문제 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저번에 굉장히 복잡하게 풀었던 것 같은데 간단하게 풀렸다~! 주요 아이디어 처음에 문제를 읽을 때는 그냥 다 때려놓고 set하면 되는거 아니야?? 했는데.. 이 문제에는 함정이 있다. 바로 result 내의 원소 순서를 맞춰야만 정답이 된다는 것 애초에 문제 조건에도 명시되어 있다! 주어진 문자열 s를 2차원 리스트로 변환하기 원소 개수 순으로 오름차순 정렬 그래야 a1, a2, ... 를 .. 2024. 4. 7.
[프로그래머스] 두 개 뽑아서 더하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 굉장히 간단한 입문용 문제 주요 아이디어 2개를 추출하는 모든 조합 뽑기 오름차순 정렬 코드 구현 (Python 3) 더보기 from itertools import combinations def solution(numbers): combi = list(combinations(numbers,2)) answer = list(set([x[0] + x[1] for x in combi])) answe.. 2024. 4. 7.