본문 바로가기
728x90

전체 글50

[프로그래밍 지식] 왜 max값은 제일 작은 수, min값은 제일 큰 수로 해야 할까? 프로그램을 처음 시작했을 때 들은 생각이다. 물론 프로그램을 계속 짜다보니 해결이 되었지만 코딩을 처음 시작했을 때 의문이 생길만해서 포스팅해보고자 한다. 일단 min, max변수를 사용하는 경우는 최대, 최소값을 찾을 때 사용한다. max변수로 예시를 들자면 초기 max값과 비교해야할 수 중에서 큰값을 max값에 저장하고 이를 반복하면 최대값이 구해진다. 위의 사진의 방식대로 max값이 변형이 되는데 만약 max변수의 초기값이 굉장히 크다고 생각해보자. 이렇게 max값이 변하지 않는다. 만약 입력값이 1000보다 작은 수만 입력이 되는 경우 어떤 경우에도 최대값을 1000 외에는 출력하지 않는 이상한 코드가 탄생하게 되므로 max값은 입력 값의 범위보다 작은 값으로 선언한다. 마찬가지로 min값도 mi.. 2023. 2. 19.
[프로그래밍 지식] 프로그램이 가독성이 떨어지고 너무 길 때 가끔 의식의 흐름을 따라 코드를 짜다보면 코드가 점점 조건문들이 엉켜버려서 내가 짠 코드여도 이 코드가 어떤 동작을 하는지 알기가 힘들 때가 있다. 그래서 작성한 프로그램이 가독성이 떨어지고 너무 더러울 때 내가 이를 해결하기 위해 사용하는 방법을 포스팅해보고자 한다. 이런 코드처럼 처음 봤을 때에는 무슨 기능을 하는지 이해하기가 힘든 코드가 있다. 이런 코드는 오류가 나지않고 출력이 되더라도 정답이 아닌 경우에는 수정하기 매우 까다롭다. (가독성도 많이 떨어진다.) 이를 줄이기 위해서 할 수 있는 방법으로는 조건문마다 무슨 역할을 하는 조건문인지 주석을 추가하는 것이다. 아래 코드는 위의 코드에 주석을 추가한 것이다. 위의 코드에서 바뀐 것은 주석 외에는 없지만 확실히 각 if절들이 무슨 역할을 하는지.. 2023. 2. 19.
[python][BOJ15973] 두 박스 https://www.acmicpc.net/problem/15973 15973번: 두 박스 표준 입력으로 두 박스의 정보가 한 줄에 하나씩 주어진다. 각 박스의 정보는 왼쪽 아래 꼭짓점 좌표 (x1, y1)과 오른쪽 위 꼭짓점 좌표 (x2, y2)로 구성되는데 이들 좌푯값 x1, y1, x2, y2 (x1 < x2, y1 < y2) www.acmicpc.net 2018년 정올 중등부 1번 문제지만, 단순 구현문제다. 물론 구현할 때 조건문이 조금 길어 귀찮다. NULL인 경우, POINT인 경우, LINE인 경우를 판단하고 나머지는 FACE로 처리해주면 풀린다. 코드는 아래에 있다. 더보기 a=list(map(int,input().split())) b=list(map(int,input().split()).. 2023. 2. 18.
[오류] ValueError 생각보다 나오기 쉬운 오류다. 자료형이 맞지 않으면 나오는 오류인데, 문자열, 'abc'를 int로 바꾸는 등 자료형에 맞지 않게 사용하면 나온다. python의 경우 자료형 확인은 type 함수를 사용하면 알 수 있다. 2023. 2. 16.
[오류] IndexError IndexError: list index out of range, 가장 고통을 많이 주는 에러다.. list[i]에서 i의 값이 list의 크기를 벗어나면 생기는 에러이다. '분명 범위를 잘 구했는데?'라고 생각하며 오류를 찾지만 머리만 아프고 틀린 곳을 찾기가 생각보다 힘들다. 대부분은 빈리스트에 input받은 값을 추가하려 할때 나온다. 빈리스트에 input받은 값을 추가할 때는 list.append(input값)을 사용하자 2023. 2. 15.
[오류] ZeroDivisionError 정말 에러를 그대로 번역하면 된다. 수를 0으로 나눠서 에러가 발생했다는 뜻이다. 0으로는 수를 나눌 수 없기 때문에 나오는 에러인데, 이는 정말 간단하게 나누는 수가 0일 경우를 예외로 처리해버리면 해결된다. 2023. 2. 15.
728x90