분류 전체보기 93

★ 코딩 테스트에 나오는 알고리즘/문제 유형 총정리

알고리즘 구현(Implementation) 알고리즘: 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이 어려운 알고리즘 브루트 포스(Brute Force) 알고리즘: 모든 경우의 수를 탐색하는 알고리즘 그리디(Greedy) 알고리즘: 각 단계마다 항상 최선의 선택을 하여 해에 근사한 값에 도달하는 알고리즘 다이나믹 프로그래밍(Dynamic Programming) 알고리즘: 큰 문제를 작은 문제들로 나누어 해결하고, 그 결과를 큰 문제 해결할 때 사용하는 알고리즘 재귀(Recursive) 알고리즘: 함수 내부에서 함수가 자기 자신을 다시 호출하여 작업을 수행하는 알고리즘 분할 정복(Divide and Conquer) 알고리즘: 큰 문제를 분할이 불가능할 때까지 나누고(divide) 작은 문제들을 해결한 후..

알고리즘 2023.02.01

[백준 3665] 최종 순위 - 파이썬(Python) - 골드1(위상 정렬)

https://www.acmicpc.net/problem/3665 3665번: 최종 순위 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에 www.acmicpc.net 문제 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에서는 최종 순위를 발표하지 않기로 했다. 그 대신에 작년에 비해서 상대적인 순위가 바뀐 팀의 목록만 발표하려고 한다. (작년에는 순위를 발표했다) 예를 들어, 작년에 팀 13이 팀 6 보..

[프로그래머스 Level2] 시소 짝꿍 - 파이썬(Python) - 연습문제

https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 어느 공원 놀이터에는 시소가 하나 설치되어 있습니다. 이 시소는 중심으로부터 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 있습니다. 이 시소를 두 명이 마주 보고 탄다고 할 때, 시소가 평형인 상태에서 각각에 의해 시소에 걸리는 토크의 크기가 서로 상쇄되어 완전한 균형을 이룰 수 있다면 그 두 사람을 시소 짝꿍이라고 합니다. 즉, 탑승한 사람의 무게와 시소 축과 좌석 간..

[백준 11780] 플로이드 2 - 파이썬(Python) - 골드2 / 플로이드-워셜

https://www.acmicpc.net/problem/11780 11780번: 플로이드 2 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 문제 n(1 ≤ n ≤ 100) 개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000) 개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 ..

[백준 2533] 사회망 서비스(SNS) - 파이썬(Python) - 골드3(다이나믹 프로그래밍)

https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net 문제 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망에서 사람들의 친구 관계는 그래프로 표현할 수 있는데, 이 그래프에서 사람은 정점으로 표현되고, 두 정점을 잇는 에지는 두 정점으로 표현되는 두 사람이 서로 친구 관계임을 표현한다. 예를 들어, 철수와 ..

[백준 1197] 최소 스패닝 트리 - 파이썬(Python) - 골드4(최소 스패닝 트리) ○

https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 문제 그래프가 주어졌을 때, 그 그래프의 최소 스패닝 트리를 구하는 프로그램을 작성하시오. 최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리를 말한다. 입력 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는..

★ 백준 - 코드 제출 결과 관련 설명

틀렸습니다 몇 %에서 틀렸다는 것은 의미가 없습니다. 몇 %에서 틀렸다는 내용을 올리지 마세요. 맞았는데 틀리는 경우는 거의 없습니다. 만약 데이터가 잘못되어서 틀린 경우라면, 오타/오역/요청 게시판으로 글을 올려주세요. 내 컴퓨터에서는 되는데, 제출하면 틀리는 경우도 없습니다. 더 많은 예제를 입력해보세요. Visual Studio에서는 되는데, 이클립스에서는 되는데, 엑스코드에서는 되는데, 실행은 되는데, 제 컴파일러에서는 되는데, gcc에서는 되는데, 등등의 표현도 사용하지 말아주세요. 문제에서 출력하라고 한 내용 이외의 말을 출력 하면 안됩니다. 문제의 출력 형식을 지키는지 다시 한 번 확인해보세요. 예제만 채점하는 것이 아니기 때문에, 예제가 잘 나오는 것도 큰 의미가 없습니다. 질문 게시판에서..

[프로그래머스 Level3] 길 찾기 게임 - 파이썬(Python) - 2019 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해 냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이..

[백준 5639] 이진 검색 트리 - 파이썬(Python) - 골드5(그래프 탐색, 트리, 재귀)

https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 문제 이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진트리이다. 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다. 노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다. 왼쪽, 오른쪽 서브트리도 이진 검색 트리이다. 전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다..

1학년 회고

2023/1/16 이번 겨울 방학은 쭉 알고리즘만 푸는 것 같다. 중간중간 개발과 관련된 공부도 해보려 했지만, 흥미가 없어 진전이 안 되었다ㅠ 1학년은 이렇게 알고리즘 공부로 시작해서 알고리즘으로 끝나는 것 같은데, 덕분에 나름 즐겁게 보냈다. 내가 이런 류의 공부를 시간 가는 줄 모르고 재미있게 한다는 점을 처음 알게 되었다. 2학년이 되면 이제 코로나도 지나가면서 비대면 수업도 많이 사라질텐데 슬프다..ㅠㅡㅠ 2학년이 된다면, 알고리즘도 좋지만 학교에서 배울 운영체제, 자료구조도 어떤 공부일지 궁금하고 엄청 설렌다. 3, 4학년 커리는 재미없어 보이지만..ㅎㅎ 1학년 과목들은 좀 느슨했고 2학년 전공과목은 엄청 흥미롭고 재밌어 보인다. 2학년엔 학과 공부를 지금보다 좀 더 많이 신경쓰고 다니고 싶다..

일상 2023.01.16
728x90