본문 바로가기

IT/Python4

프로그래머스 알고리즘 Lv4 숫자 블록 문제출처 https://programmers.co.kr/learn/courses/30/lessons/12923문제를 읽어보면 그냥 순서대로 구현하기 자체는 매우 쉽다. 그러나, 길이가 최대 1,000,000,000에 달하기 때문에 주먹구구식으로 코드를 짰다가는 결과값을 보는 것 자체가 불가능할 정도로 굉장히 오래 걸린다.이 사이트 문제가 항상 그러하지만 이번에는 더욱더 효율적인 해법이 중요시되는 문제인듯하다.내 해법의 접근과정을 풀어보자면,① 다 풀어놓고 주어진 범위를 가져오는 것이 아닌, begin과 end 사이의 값만 계산해서 도출. (매우 당연하다.)② 숫자 몇 개를 늘어놓고 직접 해보면 알겠지만 주어진 인덱스를(begin, end 사이 값)을 2부터 시작해서 딱 나눠지면 그 나눈 값이 그 인덱스의.. 2018. 9. 7.
프로그래머스 알고리즘 Lv4 3 x n 타일링 문제 출처 https://programmers.co.kr/learn/courses/30/lessons/12902?language=python3 문제 설명가로 길이가 2이고 세로의 길이가 1인 직사각형 모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 3이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 다음과 같이 2가지 방법이 있습니다타일을 가로로 배치 하는 경우타일을 세로로 배치 하는 경우예를들어서 n이 8인 직사각형은 다음과 같이 채울 수 있습니다.직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 solution 함수를 완성해주세요.-프로그래머스 문제 설명 中 12345678def solution(n): m.. 2018. 8. 30.
Python map() 함수에 대해 공부해보자. 파이썬은 여타 Low-Level 언어들과 달리 더 간결한 코드를 작성할 수 있는 것이 장점이다. 문제는 그런 코딩을 하기 위해서는 파이썬 존재하는 내장함수들을 많이 알고, 제대로 이해하는 것이 되겠다. 코드를 간결하게 만들어주는 것들은 list comprehension, reduce, zip, lambda 등이 있지만 오늘은 map()함수에 대해서 공부해봐야겠다. 사실 간결하게 줄이기 위해서는 앞에 열거한 다른 것들과 함께 잘 사용할 때 효과가 극대화 된다고 볼 수 있겠다. map(function, iterable, ...)Return an iterator that applies function to every item of iterable, yielding the results. If additiona.. 2018. 7. 26.
프로그래머스 알고리즘 연습 Lv2 124 나라의 숫자 문제출처 : https://programmers.co.kr/프로그래머스 사이트에서 만난 첫 레벨2 문제인데 레벨1에 비해 갑자기 난이도가 상승했다.4를 3으로 취급하고 3진법으로 해결할 수 있을거라 생각했지만 자릿수가 올라갈 때 0의 부재로 해결이 불가능하다는 것을 깨닫고 방식을 바꿈.종이에 몇 번 끄적이다가 3의 n승을 이용해 124나라 숫자로 몇 자리 수인지 알아낸 다음 그 자릿수에서 몇 번째 숫자인지 찾아내서 계산하는 방식으로 접어듬. 12345678910111213141516171819202122232425262728293031def solution(n): m,count = numofdigit(n) num=[1]*m #각 자릿수를 분리해서 계산하기 위해 자릿수 크기의 리스트 생성 count-=1 .. 2018. 7. 19.