[Python] 리스트, 딕셔너리, 튜플, 집합
개발/Python2022. 6. 29. 23:32[Python] 리스트, 딕셔너리, 튜플, 집합

*가독성이 다소 떨어지는 점 양해 부탁드립니다. 리스트(list) 👨‍🎓학생의 학점을 관리하는 프로그램을 작성해보자. #학생A의 학점 A_network = "A+" A_algorithm = "A" A_OS = "B" #학생B의 학점 B_network = "A" B_algorithm = "C" B_OS = "D" 위와 같이 변수에 원하는 값을 저장할 수 있다. 만약, 학생의 수가 매우 많아지면 어떻게 될까? → 보기도 안좋고, 유지보수하는데 최악이다. 따라서, 위와 같은 정보를 리스트를 통해 한 번에 정리할 수 있다. A_grade = ["A+", "A", "B"] B_grade = ["A", "C", "D"] 예제처럼, ‘[ ]’를 사용해서 리스트라는 자료구조로 나타낼 수 있다. 리스트는 조건문, 반복문..

[백준] 1107번 리모컨, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 2. 12. 19:31[백준] 1107번 리모컨, 파이썬 문제 풀이

문제 백준 1107번 리모컨 문제를 해결했습니다. https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 ..

[백준] 11724번 연결 요소의 개수, 파이썬 문제풀이
Computer Science/알고리즘 문제2022. 2. 3. 15:55[백준] 11724번 연결 요소의 개수, 파이썬 문제풀이

문제 백준 11724번 연결 요소의 개수를 해결했습니다. 노드와 간선의 수가 주어지면 연결되어 있는 연결 요소의 개수를 찾는 문제입니다. DFS를 활용해서 해결했습니다. 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 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선..

[백준] 7569번 토마토, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 2. 2. 17:24[백준] 7569번 토마토, 파이썬 문제 풀이

문제 백준 7569번 BFS를 활용해 토마토가 익는 시간을 구하는 문제를 해결했습니다. https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 이와 유사한 문제로 7576번 토마토 문제도 있습니다. 7569번과는 토마토를 남아놓는 상자를 쌓아놓는 것(7569번), 1층밖에 없는지(7576번)가 다릅니다. 상자의 구조가 2차원인지, 3차원인지가 다릅니다. 이번 포스팅에서는 상자를 쌓아놓는 7569번의 문제 풀이를 하도록 하겠습니다..

[백준] 1260번 DFS와 BFS, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 26. 15:16[백준] 1260번 DFS와 BFS, 파이썬 문제 풀이

문제 백준 1260번 DFS와 BFS를 구현하는 문제를 해결했습니다. 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로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 ..

[백준] 2606번 바이러스, 파이썬 문제 풀이, DFS와 BFS 차이
Computer Science/알고리즘 문제2022. 1. 25. 16:23[백준] 2606번 바이러스, 파이썬 문제 풀이, DFS와 BFS 차이

문제 백준 2606번 바이러스 문제를 해결했습니다. 1번 컴퓨터와 연결되어 있는 컴퓨터, 간접적으로 연결되어 있는 컴퓨터도 웜 바이러스에 감염됩니다. 이 때, 1번으로부터 감염된 컴퓨터가 몇 대인지 찾는 문제입니다. https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제 풀이 컴퓨터간 상하관계나 방향이 없기 때문에 그래프 문제로 해결할 수 있었습니다. 1번과 연결되어 있는 컴퓨터를 탐색하는 문제이므로 DFS와 BFS로 해결할 수 있습니다. 이번 문제는..

[백준] 1463번 1로 만들기, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 21. 19:11[백준] 1463번 1로 만들기, 파이썬 문제 풀이

문제 백준 1463번 주어진 정수를 특정 연산을 통해 1로 만들 때, 최소한의 연산 횟수를 찾는 문제를 해결했습니다. https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 예시: 10 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. ..

[백준] 12755번 수면 장애, 파이썬 문제 풀이
Computer Science/알고리즘 문제2022. 1. 19. 13:59[백준] 12755번 수면 장애, 파이썬 문제 풀이

문제 백준 12755번 수면 장애를 극복하기 위해 숫자를 세는데, 숫자를 이어 붙였을때 주어진 N번째 숫자는 무엇인지 찾는 문제를 해결했습니다. https://www.acmicpc.net/problem/12755 12755번: 수면 장애 수면 장애를 가진 강민이는 잠이 오지 않아 적잖은 고통을 느끼고 있다. 강민이는 잠이 오지 않을 때마다 속으로 양을 세고 있었는데, 오늘따라 백만 마리까지 세었는데도 잠이 오지 않았다. 한 www.acmicpc.net 문제 수면 장애를 가진 강민이는 잠이 오지 않아 적잖은 고통을 느끼고 있다. 강민이는 잠이 오지 않을 때마다 속으로 양을 세고 있었는데, 오늘따라 백만 마리까지 세었는데도 잠이 오지 않았다. 한계를 느낀 강민이는 새로운 방법으로 수를 세기로 했다. 1부터 ..

image