알고리즘&자료구조/코딩문제 풀이 (3) 썸네일형 리스트형 프로그래머스 전화번호 목록(c++) https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr -문제 접근 방법 1) 사전순 정렬 처음에는 이중 for 문을 돌려 선형 탐색을 하면서 비교하여 문제를 해결했다. 정확도 테스트는 모두 통과했으나 효율성 테스트에서 통과하지 못했다. 그래서 더 좋은 방법이 있을지 고민하다 사전순 정렬을 떠올렸다. string 타입의 선형 자료구조를 정렬할 시 사전 순으로 정렬된다. 즉 string 배열에 "119" "1180.. 프로그래머스 완주하지 못한 선수 (c++코드) https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 해당 문제의 알고리즘 분류는 해쉬 문제였다. 하지만 알고리즘 분류에 초점을 맞추지 않고 내 스스로 어떠한 알고리즘과 자료구조를 사용할지 생각해봤다. 곰곰히 생각해본 결과 정렬을 사용해서 문제를 풀어도 된다는 생각을 떠올리게 됐다. 문제 접근 과정: 1.정렬을 떠 올린 이유: 해당 문제의 핵심 키는 "한 명의 선수만 완주하지 못했다."이다. 이.. 백준 2407번 https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 문제 접근 과정: 1)알고리즘 선택: 조합은 dp알고리즘 예제로 유명한 문제여서 고민 없이 알고리즘을 선택했다. 고등학교 수학에서 배운 nCk= n-1Ck + n-1Ck-1 식을 이용해 dp점화식을 dp[i][j]=dp[i-1][j]+dp[i-1][j-1]으로 정하였다. 2) dp배열의 자료형: dp배열에 저장될 수 있는 가장 큰 값 100C50으로 longlong의 범위를 넘개 된다. (처음에는 longlong이겠거니 하고 풀어서 틀렸다. 항상 자료형 결정에 대해 간관하지 말자!) 3) string으로 더하기:.. 이전 1 다음