본문 바로가기
300x250

python14

[python] n차원 배열 만들기 python은 n차원 배열을 선언하는 것에 있어서 까다로운 편에 속한다. c언어의 경우는 a[][]의 형태로 2차원 배열을 선언 할 수 있지만 python은 이 방식이 불가능하다. 4차원 배열을 예로 들자면 [ [ [ [ ] * ] * ] * ] * 방식을 사용할 경우 특정 범위 값을 바꾸려해도 배열 내의 모든 값이 변하게 된다. 이를 해결 하기 위해서는 배열을 선언할 때 [ [ [ [ for _ in range() ] for _ in range() ] for _ in range() ] for _ in range() ]의 형태로 코드를 작성해야 4차원 배열이 작성이 된다. 2023. 4. 9.
[Python][BOJ 6951] Packet Routing https://www.acmicpc.net/problem/6951 6951번: Packet Routing The date is October 29th, 1969. Today, scientists at UCLA made history by exchanging data between two computers over a network. The transmission wasn't very spectacular: only the first two letters of the word login were received before the system crashed. www.acmicpc.net 엄청 쉬운 Floyd-warshall 문제이다. n개의 정점에 w개의 간선정보을 받고 계산 후 p개의 질문에 대답하면 되.. 2023. 3. 13.
[Python][BOJ 2862] 수학 게임 https://www.acmicpc.net/problem/2862 2862번: 수학 게임 동전의 개수가 4개일 때, 상덕이가 첫 번째 턴에서 가져갈 수 있는 동전의 경우의 수는 1, 2, 3, 4개이다. 만약 4개를 가져가게 된다면 상덕이는 항상 이기게 된다. 하지만, 이것은 최솟값이 아니다. www.acmicpc.net 저번에 풀었던 fibonacci game과 같은 유형의 문제이다. 증명을 하면 이도 똑같이 돌의 수보다 작은 피보나치 수 중에서 가장 큰 수만큼 돌을 가져가야 이기는 문제다. https://ujoon.tistory.com/4 [python][BOJ2373] Fibonacci Game https://www.acmicpc.net/problem/2373 2373번: Fibonacci Game.. 2023. 3. 11.
[Python][BOJ 14938] 서강그라운드 https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 플로이드 워셜, 데이크스트라, 브루트포스의 응용문제다. 나는 플로이드 워셜을 사용했는데, 각 정점에서 다른 정점으로 가는 길이를 모두 구해놓고 탐색 범위 m보다 길이가 작은 수들의 아이템 개수를 저장하고, 각 정점에서 모을 수 있는 아이템 개수들 중에서 최대값을 출력하면 되는 문제다. 코드는 아래에 있다. 더보기 n,m,r=map(int,input().split()) t=[0]+list(map(int,.. 2023. 3. 11.
[프로그래밍 지식] int형 sort와 str형 sort의 차이 먼저 int와 str은 각각 integer과 string의 약자로 해석하자면 정수와 문자열이다. 본론으로 돌아가서 sort란 배열 속의 값들을 오름차순 또는 내림차순으로 정렬하는 것이다. 그렇다면 int형 sort와 str형 sort의 차이는 무엇일까? int형 sort란 배열 속의 값들을 크기순으로 정렬한다. 그러나 str형 sort는 배열 속의 값들을 사전 순으로 정렬을 하므로 정렬 관련 문제를 풀 때 값이 잘나오지만 틀렸다는 것은 str형 sort와 int형 sort의 혼동으로 일어나는 경우가 대다수다. 위의 사진처럼 sort가 된다. 예를 들어서 한국어의 경우에서 '나'는 '가나'보다 사전순으로 앞설 수 없다. 그러므로 str형 sort를 보면 1 11 3 4 5 6 8 9의 순으로 출력이 된 것.. 2023. 2. 24.
[프로그래밍 지식] 프로그램이 가독성이 떨어지고 너무 길 때 가끔 의식의 흐름을 따라 코드를 짜다보면 코드가 점점 조건문들이 엉켜버려서 내가 짠 코드여도 이 코드가 어떤 동작을 하는지 알기가 힘들 때가 있다. 그래서 작성한 프로그램이 가독성이 떨어지고 너무 더러울 때 내가 이를 해결하기 위해 사용하는 방법을 포스팅해보고자 한다. 이런 코드처럼 처음 봤을 때에는 무슨 기능을 하는지 이해하기가 힘든 코드가 있다. 이런 코드는 오류가 나지않고 출력이 되더라도 정답이 아닌 경우에는 수정하기 매우 까다롭다. (가독성도 많이 떨어진다.) 이를 줄이기 위해서 할 수 있는 방법으로는 조건문마다 무슨 역할을 하는 조건문인지 주석을 추가하는 것이다. 아래 코드는 위의 코드에 주석을 추가한 것이다. 위의 코드에서 바뀐 것은 주석 외에는 없지만 확실히 각 if절들이 무슨 역할을 하는지.. 2023. 2. 19.
300x250