본문 바로가기

728x90

Python

[백준알고리즘] 1707번: 이분 그래프 -Python [백준알고리즘] 1707번: 이분 그래프 -Python https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 E(1≤E≤200,000)가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간선에 대한 정보가 주어지는데, 각 줄에 인접한 두 정점의 번호가 빈 칸을 사이에 두고 주어 www.acmicpc.net 20200424 아래에 새로 푼 코드를 첨부했다. 기존의 코드는 객체를 생성하.. 더보기
[백준알고리즘] 11724번: 연결 요소의 개수 -Python [백준알고리즘] 11724번: 연결 요소의 개수 -Python https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. www.acmicpc.net 두 가지 방법을 풀었다. 이 문제는 주어진 연결 정보를 가지고 그래프가 몇 개가 생성이 되는지 찾는 문제이다. 처음에는 Disjoint Set (서로 베타적인 집합)을 나타내기 위해서 Union-Find와 유사한 알고리즘을 만들었다. 이후 질문 게시판이나 다른 분들의.. 더보기
[백준알고리즘] 1260번: DFS와 BFS -Python [백준알고리즘] 1260번: DFS와 BFS -Python https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net DFS와 BFS를 한 문제에서 동시에 해결해야 하는 문제이다. 여러 경로가 가능한 경우 중에서 작은 번호의 정점을 우선 선택했을 때의 경로들을 출력하면 된다. 예에에에에전에 Java로 풀었던 적이 있는 문제이기도 하고 기본 DF.. 더보기
[백준알고리즘] 1978번: 소수 찾기 -Python, C++ [백준알고리즘] 1978번: 소수 찾기 -Python, C++ https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 다른 분들의 코드를 봤는데 너무 짧고 변수 명도 그냥 알파벳이라 보기 넘 힘들다 ㅠㅠㅠ 일단 다른분들은 나처럼 에라토스테네스의 체를 이용한 분들도 계셨고, 1부터 n까지 반복문을 돌면서 안에서 또 3부터? 반복문을 돌리면서 나눠 떨어지는지 확인함으로써 소수인지 판별해서 소수 리스트를 만들어서 사용한 분들도 계셨다. 아무튼 나는 에라토스테네스의 체를 사용했다. 에라토스테네스의 체의 위키 링크이다. http.. 더보기
[백준알고리즘] 11576번: Base Conversion -Python [백준알고리즘] 11576번: Base Conversion -Python https://www.acmicpc.net/problem/11576 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 세계에서도 프로그래밍을 하고 싶었던 정이는 백준 사이트에 접속하여 문제를 풀기로 하였다. 그러나 미래세계는 A진법을 사용하고 있었고, B진법을 사용하던 정이는 문제를 풀 수가 없었다. 뛰어난 프로그래머였던 정이는 A진법으로 나타낸 숫자를 B진법으로 변환시켜주는 프로그 www.acmicpc.net A진법의 수를 m자리만큼 입력받아 B진법.. 더보기
[백준알고리즘] 2089번: -2진수 -Python [백준알고리즘] 2089번: -2진수 -Python https://www.acmicpc.net/problem/2089 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 11011, 11000, 11001 등이다. 10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 처음 푼 코드는 내가 직접 찾은 방법이다... 창피하긴 한데 풀 때는 다 이렇게 푼 줄 알았다. 먼저, 내가 직접 문제를 해결한 방법을 설명.. 더보기
[백준알고리즘] 11005번: 진법 변환 2 -Python [백준알고리즘] 11005번: 진법 변환 2 -Python https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 www.acmicpc.net 이전에 ord()를 사용해서 아스키코드를 숫자로 변환해준 2745번 진법 변환과 달리 10진수를 해당 진법에 맞게 변환해줘야 한다. 따라서 여기서는 chr()을 사용했다. str()는 인자값을 그대로 문자열로 바꾸는 것이지만 chr()의 경우 주.. 더보기
[백준알고리즘] 2745번: 진법 변환 -Python [백준알고리즘] 2745번: 진법 변환 -Python https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 www.acmicpc.net 주어진 진법과 수를 10진수로 바꾸는 문제이다. 이번 문제에서는 A~Z를 확인하기 위해서 각 인덱스의 character마다 정수인지 확인하기 위해서 isdigit()을 사용했다. 숫자일 경우 그대로 int()를 씌워서 숫자로 만들었다. A~Z에 해당하는 값은.. 더보기

728x90