분류 전체보기521 [ 7. 배열 ] - 두 수의 합(Two Sum) 📍 두 수의 합(two sum) 덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라. ⚡️ 나의 풀이 이 책의 풀이방법은 4가지나 되지만, 제일 비효율적인 브루트 포스(brute force)밖에 떠오르지 않았다. 브루트 포스(brute force)으로 풀었던 방법은 이중 반복문을 선언하여 index를 하나씩 비교하는 방법인데, 이렇게 풀면 시간복잡도가 높아져서 효율적인 코드라고 말하기 어렵다. 책에 나와있는 다른 방식의 풀이는 상당히 효율적이었는데, target을 찾기위해서 index끼리 더하는것이 아니라 target에서 index값 한개를 빼고 남은 index값이 배열안에 있는지 탐색하는 방법이었다. 문제풀면서 이런 방식은 떠오르지 않았는데.. 많은 풀이방법 중에 브루트포스밖에 떠오르지 않.. 2021. 4. 8. [ 파이썬(python) ] 프로그래머스 level1 - 비밀지도 📌 비밀지도 문제 설명 💡 나의 풀이 비밀지도 문제의 핵심은 다음과 같다. 벽 부분은 1, 공백 부분은 0으로 부호화한다. 지도 1과 2를 겹쳤을 때 어느 하나라도 벽이면 전체 지도에서도 벽이다. 출력 시 벽은 #, 공백은 ' '으로 설정하자. 각각의 배열을 이진수로 변경하고 논리 연산자 or를 사용해 겹치는 부분을 판단한다. 배열로 선언된 10진수의 값을 2진수로 바꿨다. format함수를 사용했는데 '{0:>0{1:}b}'.format(i, n)의 해석은 다음을 참고하자. {0:}, {1:}: format함수의 인자 순서 >: 오른쪽 정렬 0: 자리수만큼 정렬 후 남은 공간은 0으로 채움(미 사용 시 공백으로 채움) b: 이진수(bin) 형태로 반환 zfill함수로도 동일하게 사용할 수 있다. (bi.. 2021. 4. 7. [ 6. 문자열 조작 ] - 그룹 애너그램(Group Anagrams) 📍 그룹 애나그램 애너그램 이란 일종의 말장난으로 어떠한 단어의 문자를 재배열하여 다른 뜻을 가지는 다른 단어로 바꾸는 것을 말한다. 예를들면 listen의 알파벳을 다시 조합하면 silent가 되는것이 있다. ⚡️ 나의 풀이 어찌됐건 애나그램은 문자열 하나씩 분리해서 재 조합하는것이기 때문에 같은 알파벳이 쓰였는지 확인하려면 하나씩 분리해서 정렬하면 된다. 예를 들어, 문제 입력 strs = ["eat","tea","tan","ate","nat","bat"]을 기준으로 설명하면 strs를 반복문으로 하나씩 정렬하면 다음과 같은 결과가 나온다. strs = ["eat","tea","tan","ate","nat","bat"] for i in strs: print(sorted(list(i)), i) ''' .. 2021. 4. 6. [ 6. 문자열 조작 ] - 로그파일 재정렬 (Reorder Log Files) 📍 로그파일 재정렬 로그를 재정렬 하라. 기준은 다음과 같다. 로그의 가장 앞 부분은 식별자다. The letter-logs come before all digit-logs.(문자로 구성된 로그가 숫자 로그보다 앞에 온다. ) The letter-logs are sorted lexicographically by their contents. If their contents are the same, then sort them lexicographically by their identifiers.(식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다.) The digit-logs maintain their relative ordering.(숫자 로그는 입력 순서대로 한다.) ⚡️ 나의.. 2021. 4. 6. [python] 파이썬을 파이썬답게 ✏️ 서론 프로그래머스에서 문제를 풀고 잠깐 쉬다가 강의 탭을 클릭했는데, 파이썬을 파이썬답게라는 강의를 봤다. 파이썬 문법을 이미 알고 있는 분을 대상으로 pythonic한 코드를 배워볼 수 있는 강의인데, 도움이 많이 되었다. 같은 코드를 pythonic하게 작성할때의 쾌감이란... 아무튼 파트는 총 7개로 나뉘어져있으며 코딩테스트 문제를 풀때 한번씩은 꼭 접해보는 유형들이다. 파이썬의 문법은 알고있는데 이를 응용하고 싶다고 생각하는 분들에게 추천해줄만한 강의다.(게다가 무료!) ✏️ 본론 📌 2차원 리스트 뒤집기 mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = list(map(list, zip(*mylist))) 👉🏽 [[1, 4, 7], [2, 5,.. 2021. 4. 5. 이전 1 ··· 93 94 95 96 97 98 99 ··· 105 다음 more