Coding Is My Life

코딩은 인생

728x90

분류 전체보기 108

[백준/C++] 거의 최단경로(5719번)

https://www.acmicpc.net/problem/5719 5719번: 거의 최단 경로 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있�� www.acmicpc.net 문제해결 1. 다익스트라 알고리즘을 통해 목적지까지의 최단 거리를 구한다. 2.최단거리를 구하면서 최단거리의 이전노드들을 trace 벡터에 저장하면서 구한다. 3.trace의 있는 노드의 간선들을 재귀를 통해서 제거한다. 4.다시 한번 다익스트라 알고리즘을 돌려서 최단거리를 구한다. 5.코드에 주석 열심히 달았어요 보면은 이해 될 거예요. 코드 ide.goorm...

[백준]- 트리(1068번) c++

https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 풀이 1.루트노드르르 찾는다. 2.벡터를 이용해서 트리를 만들어준다. 3.dfs를 이용해서 탐색을 한다 3-1. 자식 노드가 0개, 1개, 2개이상일때의 경우를 나눈다음 구현한다. 코드 #include #include #include #include #define max 52 using namespace std; vector tree[max]; int visit[max] = {0,}; int..

백준- c++/c 그룹 단어 체커[1316번]

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 이번 문제도 간단하다. 입력값을 배열로 받은 다음에 하나 하나 방문하면서 다음 단어가 다를 경우 ck함수를 이용하여 비교해 주는 방법으로 매우 간단하게 풀었다 ㅎㅎ 소스코드 #include #include #include #include #include #include using namespace std; int word_len(void); char word[10..

백준- 크로아티아 알파벳[2941번]

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 이번문제는 조건에 맞게 크로아티아 알파벳을 앞글자의 따라 경우를 나눠서 간단하지만 길게 풀은 것 같다. 더 쉽게 푸는 방법도 많겠지만 가장 먼저 생각나는 방법으로 풀었다... 소스코드 #include #include #include #include #include #include using namespace std; int main(void){ int cnt ..

백준- Z[1074번]

이 문제는 1사분면 -> 2사분면 -> 3사분면 -> 4사분면 순으로 방문해서 좌표가 일치할시 방문순서를 출력하는 문제이다. 알고리즘 해결 전략은 일단 1,2,3,4분면으로 N이 2가 될떄까지 나눈 다음에 N이 2가 될때 왼쪽위 -> 오른쪽위 -> 왼쪽 아래-> 오른쪽 아래 순으로 if문으로 접근한 다음에 일치할 시 출력해주면 된다. 만약 N이 2가 아닐시 2가 될때까지 나눠야하는데 나눌때도 사분면으로 나누어야한다. 자세한 내용은 코드의 주석문을 확인하기 바란다. 이 코드를 c++로 작성하면 맞는데 python 언어 자체가 느린문제로 시간초과로 체점 될 수 있다. c++를 이용하자...

파이썬- 리스트 정렬하기

파이썬에는 리스트를 정렬하는 방법이 sort와 sorted 두가지 방법이 있다. 바로 예제를 보면서 이해해 보자. 기본적으로 일차원 리스트를 정렬하는 방법은 다음과 같다. 리스트이름.sort()를 해주면 num이라는 리스트가 정렬이 되서 결과는 다음과 같다. 다음은 sorted를 사용한 정렬방법은 다음과 같다. sort를 사용한것보다는 조금 간단하다 이것 또한 결과는 같게 나온다. 다음으로는 2차원 리스트를 정렬하는 방법. 2차원리스트는 sorted에 key를 활용해서 정렬을 할 수 있다. sorted를 사용하는 방법은 sorted(리스트이름, key=정렬함수) 이렇게 사용할 수 있다.

파이썬 2020.10.10
728x90