알고리즘💻/기타

https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 파이썬의 dictionary 자료형 문법을 잘 활용할 줄 알면 간단하게 풀 수 있는 문제이다. dictionary에서 key를 가지고 값을 가져올 때, dict[key] 로 가져오는 경우 해당 Key가 없으면 에러를 발생시킨다. 에러를 발생시키고 싶지 않은 경우에는 dict.get(key) 로 가져오면 None을 반환한다. def solution(name, yearning, photo): yea..
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 단순하게 players 배열을 순회하는 방식으로 구현을 한다면, 당연하게 시간초과가 나는 문제였다. 파이썬의 dictionary 자료구조를 이용해서 인덱스를 value로, 이름을 key로 갖는 dict로 바꿔서 인덱스를 더 빠르게 알아낼 수 있도록 구현해야 한다. enumerate 메소드를 사용해서 리스트를 dictionary로 변환하는 문법에 익숙하지 않아 구글링을 했는데, 앞으로 많이 쓰일 ..
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 문제의 설명대로 말 그대로 "구현"하는 문제였다. 다만 문제의 조건을 이해하는 게 어려웠는데, 톱니바퀴가 회전 된 후의 상태로 비교하는 게 아니라 회전하기 전 상태를 기준으로 비교하는 것이라서 먼저 회전을 시키면.. 다음 번 톱니바퀴가 도는지 안도는지 확인할 때 어려움이 있었다. 톱니바퀴를 회전시킨다는 점에서 큐를 사용해야 한다는 것과, 재귀를 사용해야겠다는 아이디어가 떠올라 구현을 일단 해..
https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 30의 배수는 3의 배수이면서 일의 자리가 0인 수 + 3의 배수는 각 자릿수의 합이 3의 배수인 수 조건을 알면 간단한 문제인데 틀렸다고 떠서 왜일까 생각했는데, %3==0 이 아닌 경우에만 -1을 출력해서 그랬다.. 이러면 3이 주어졌을 때는 아무것도 출력되지 않는다. import sys N = list(map(int, sys.stdin.readline().rstrip())) N.sort(rev..
https://www.acmicpc.net/problem/2155 2155번: 삼각형의 최단 경로 첫째 줄에 두 정수 A, B(1≤A, B≤1,000,000,000)가 주어진다. www.acmicpc.net 문제풀이: 어떻게 풀어야 하는 지 도무지 모르겠었는데..(사실 생각하기 귀찮아서 미뤄뒀던 걸수도..) 동아리 부원이 푼 걸 보고 힌트를 얻었다! 엄청난 삽질.. 까진 아니고 알고 나니 아.. 하는 그런 문제였다. 이렇게 푸는 게 정석일 지는 모르겠지만.. 루트 즉, 1번 위치부터 각 번호까지의 최단 경로를 구해보면 0 2 1 2 4 3 4 3 4 6 5 6 5 6 5 6 이렇게 나온다! 이 규칙은 쉽게 구할 수 있으니 이렇게 구해서 큰 수에서 작은 수를 빼주기만 하면 되는 것.. import sys ..
호프
'알고리즘💻/기타' 카테고리의 글 목록