개발자의 기록장 블로그

2021-10-05 각 자릿수의 합 반영환
·
알고리즘/문제 풀이
처음에 문자열을 보듯이 접근해 보았으나 코드를 써내려갈수록 굳이 ...? 란 생각이 들기 시작함.그래서 인덱싱을 대신할 방법이 무엇이 있을까 생각하다가 자릿수 개념을 떠올림. 인덱싱 대신에 자릿수 개념을 이용함1의 자리인 경우에는 참조만 당함!! 자릿수를 나타내기 위해 잠시 문자열로 형변환해서 len 함수를 이용함.def sum_digits(n): lens = len(str(n))-1 if lens == 0: return n return n // (10 ** lens) + sum_digits(n % (10 ** (lens)))
2021-10-05 삼각수 반영환
·
알고리즘/문제 풀이
12345611+21+2+31+2+3+41+2+3+4+51+2+3+4+5+6 3번째 항은 2번째항 + 3, 4번재 항은 3번째 항 + 4n번째 항은 n-1번째 항 + n1번째 항은 참조당하기만 함!! 즉, base case는 Value로 구분되어지며, 1번항임.def triangle_number(n): if n == 1: return 1 return n + triangle_number(n-1)
2021-10-05 피보나치수열 반영환
·
알고리즘/문제 풀이
1234561123583번째 항부터 이전 두개의 항 참조1번, 2번째 항은 참조 당하기만 함. base case는 index로 구분되어지나 value로 구분되어지나? n 번째 피보나치를 재귀의 방식으로 풀어나가 보면, def fib(n): if n  n=3 => fib(2) + fib(1) (둘다 참조당하는 값, base case) n=4 => fib(3) + fib(2) (fib(3)은 재귀로 돌아가고, fib(2)는 base case)--- 따라서, n 에 값에 따라서 base case와 recursive case가 나누어지기에 value로 구분되어지는 경우다. base case -> Valuerecursive case -> Function(itself)
2021-09-30 Bronze "8958" 반영환
·
알고리즘/문제 풀이
이번 문제를 풀면서 항상 느꼈던 나의 문제점을 느꼈다... 분기문을 나눌 때 너무 세세하게 나누려고 하는 것..!굳이 나누지 않아도 if문 하나로 해결되는 것을 elif elif.......분기를 나눌 때 명확한 기준을 세우지 않는다는 것이 문제..!앞으로 생각을 좀 더 하고 나누어야할듯싶다!
2021-09-27 Bronze "10809" 반영환 - print end 옵션
·
알고리즘/문제 풀이
정말... 문제 조건 안읽는건 수능때나 지금이나 똑같다.. 단어의 "첫 번째" 글자의 인덱스를 출력하는건데.. 계속 뻘짓했다..  ㅠㅠ 공백을 기준으로 출력하는 방법 -> 파이썬 카테고리 확인!  2021-09-27
2021-09-20 Bronze "10951" 반영환
·
알고리즘/문제 풀이
처음에 이 문제를 보았을 때 멘붕이 왔다. 분명 전 문제에선 실행 조건과 맺음 조건이 분명했는데... 여기선 아무것도 없다..!그렇다는 것은? 임의로 프로그램의 종료가 일어날 수 있다는 뜻이고, 그 뜻은 error를 catch해야 한다는 것..이라 해석했다!따라서 try & except문을 써서 무수히 많은 시간동안, a + b를 출력할건데..! 근데! 에러가 발생하면! 무한 루프를 탈출해서안전히 프로그램을 종료해라..! 라고 해석해서 문제를 풀었다!
2021-09-20 Bronze "11720" 반영환
·
알고리즘/문제 풀이
1. 숫자의 개수를 입력받는다.2. 문자열을 입력받는다.3. 문자열의 길이가 N으로 고정되어 있으므로, 길이는 반드시 N이다.4. 따라서 range(N) 을 이용해 반복문을 돌려 문자열 인덱싱을 통해 합을 구한다!
2021-09-19 Bronze "11654" 반영환
·
알고리즘/문제 풀이
파이썬에서는 아스키 코드를 지원하는 아주 간단한 문법이 존재한다는 것을 알았다.char type이 따로 없는 파이썬이라 그런가?잘은 모르겠다만 편리한 것 같다!