본문 바로가기
300x250

프로그래밍/프로그래밍 지식5

[프로그래밍 지식] 재귀 함수란? 재귀 함수(되부름 함수)란 함수 안에서 함수를 호출하는 방식이다. 1~10까지의 합을 구하는 경우를 생각해보자. for문은 자신이 혼자 1+2+3+4+5+6+7+8+9+10을 더하는 것이다. 반면 재귀함수는 뒤에 애한테 1~9까지의 합을 물어보고 그 값에 10을 더하는 방식을 반복한다. 하지만 이런 단순 계산은 재귀를 통해 호출하는 것보다 이미 알고 있는 계산식에 대입시켜서 푸는 것이 더 빠르다. 예를 들어 피보나치 수열의 경우에도 점화식, d[i]=d[i-1]+d[i-2]를 통하면 획기적으로 빠른 속도로 처리가 가능한데, 이는 재귀에서 중복되는 값을 계속해서 호출하고 계산하기에 발생하는 문제이다. 하지만 재귀함수는 알고리즘에서 80% 이상이 재귀함수를 기반으로 개량하여 만들어져 BOJ 문제 또는 코딩테.. 2023. 11. 24.
[프로그래밍] 비트 연산자 프로그램을 짜다보면 & | ^ ! >> 2023. 7. 6.
[프로그래밍 지식] 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.
[프로그래밍 지식] 왜 max값은 제일 작은 수, min값은 제일 큰 수로 해야 할까? 프로그램을 처음 시작했을 때 들은 생각이다. 물론 프로그램을 계속 짜다보니 해결이 되었지만 코딩을 처음 시작했을 때 의문이 생길만해서 포스팅해보고자 한다. 일단 min, max변수를 사용하는 경우는 최대, 최소값을 찾을 때 사용한다. max변수로 예시를 들자면 초기 max값과 비교해야할 수 중에서 큰값을 max값에 저장하고 이를 반복하면 최대값이 구해진다. 위의 사진의 방식대로 max값이 변형이 되는데 만약 max변수의 초기값이 굉장히 크다고 생각해보자. 이렇게 max값이 변하지 않는다. 만약 입력값이 1000보다 작은 수만 입력이 되는 경우 어떤 경우에도 최대값을 1000 외에는 출력하지 않는 이상한 코드가 탄생하게 되므로 max값은 입력 값의 범위보다 작은 값으로 선언한다. 마찬가지로 min값도 mi.. 2023. 2. 19.
[프로그래밍 지식] 프로그램이 가독성이 떨어지고 너무 길 때 가끔 의식의 흐름을 따라 코드를 짜다보면 코드가 점점 조건문들이 엉켜버려서 내가 짠 코드여도 이 코드가 어떤 동작을 하는지 알기가 힘들 때가 있다. 그래서 작성한 프로그램이 가독성이 떨어지고 너무 더러울 때 내가 이를 해결하기 위해 사용하는 방법을 포스팅해보고자 한다. 이런 코드처럼 처음 봤을 때에는 무슨 기능을 하는지 이해하기가 힘든 코드가 있다. 이런 코드는 오류가 나지않고 출력이 되더라도 정답이 아닌 경우에는 수정하기 매우 까다롭다. (가독성도 많이 떨어진다.) 이를 줄이기 위해서 할 수 있는 방법으로는 조건문마다 무슨 역할을 하는 조건문인지 주석을 추가하는 것이다. 아래 코드는 위의 코드에 주석을 추가한 것이다. 위의 코드에서 바뀐 것은 주석 외에는 없지만 확실히 각 if절들이 무슨 역할을 하는지.. 2023. 2. 19.
300x250