[LeetCode] Roman to Integer
·
코딩 테스트
1.문제https://leetcode.com/problems/roman-to-integer2.풀이dictionary를 이용하여 푸는 문제. 모든 경우의 수를 조합하여 미리 dict 를 만들어도 되고, 주어진 문자열에 대한 값만 dict 로 만들어도된다.[다른사람 풀이]class Solution: def romanToInt(self, s: str) -> int: roman = { "I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000 } res = 0 for i in range(len(s)): if i + 1  3.코드class Sol..
[프로그래머스] 6주차 - 복서 정렬하기 (C++)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/85002#qna 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 2. 풀이 문제의 기준에따라 정렬을해야하는 sorting문제. 승률을 구할때 자기자신과는 싸울 수 없어서 당연히 전체 경기 수 = 전체 복서 수 - 1 로 계산했다가 잘못 된 것을 인지하고 고쳤다. 경기를 안한 N도 있기때문에 전체 경기 수는 자기자신이 아니고 N인 경우를 제외한 W, L일 경우를 모두 카운트 해..
[프로그래머스] 가장 먼 노드 (C++)
·
코딩 테스트
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/49189/solution_groups?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 BFS를 활용한 그래프 문제. 1) 양방향 그래프이므로 그래프의 연결 상태를 저장하낟. 2) 1번 노드부터 시작하여 방문 여부를 체크한다. 3) 방문하지 않은 노드의 경우 dist 거리를 갱신하고 방문 여부를 체크, 큐에 저장 4) 2~3번 반복 5) dist에 저장한 거리 중 가장 최대 값을 구한다. 6) 최대값 max_val인 노드가..
[백준] 외판원 순회 (C++)
·
코딩 테스트
1. 문제 https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 2. 풀이 알고리즘 테스트보다가 만난 문제. 처음에는 N이 16이하라 완전탐색(DFS) 방식으로 풀면 될 것이라 생각했지만 시간초과가 났다. 왜냐하면 모든 경우의 수를 따지면 16!만큼 연산을 해야하기 때문이다. 그리고 모든 점에서 시작하는 경우를 따지지 않아도 된다. 왜냐하면 만약 점 2에서 시작할 때 2 -> 1 -> 3 -> 2 가 최소 비용 ..
[Codility] Lesson14. MinMaxDivision (Python)
·
코딩 테스트
1.문제 https://app.codility.com/c/run/training77EUN5-7HZ/ Codility Your browser is not supported You should use a supported browser. Read more app.codility.com 2.풀이 어느 회사에 코딩테스트로 비슷한 문제가 나왔었던 문제. 그 당시에는 완전탐색 문제인 줄 알았는데 이 문제를 풀면서 이분탐색을 적용해서 푸는 문제였다는 것을 알았다. 아무리생각해도 어떻게 풀어야할지 몰라서 구글링해서 참고하였다.. ㅎㅎ case1. K == len(A) 일 경우 : 모든 원소의 sum 반환 case2. K >= len(A) 일 경우 : 만약 A=[1, 5], K=3 이면 [],[1],[5] 이므로 max..
[Codility] Lesson12. Chocolatesbynumber (python)
·
코딩 테스트
1. 문제 2. 풀이 def solution(N, M): x = 0 eat = [0] while(1): res = (x + M) % N if res == 0: break eat.append(res) x = x + M return len(eat) 처음에 while문으로 문제에 나온 그대로 풀다가 Time out... 그래서 풀이를 찾아보았다. 초콜릿을 먹는 개수는 N,M의 최대공약수의 배수 개수만큼 먹는다. 결국 최대공약수를 구하는 문제 3. 코드 def solution(N, M): a, b = N, M while(b): a, b = b, a % b gcd = a #최대공약수 answer = N // gcd return answer 참조 : https://killong.blogspot.com/2019/12..