전체 글

좋은사람의 개발 노트 입니다.
언어/Python

파이썬 알고리즘 - 링크드리스트(LinkedList)에서 중복 제거하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(6) (1). 개발자 면접 트레이닝 - 링크드리스트에서 중복되는 노드 삭제(Delete) 알고리즘 ① 링크드리스트는 다음 노드의 위치를 가르키고 있는 포인트 보유 ② 파이썬 클래스 Next 변수 활용 ③ 첫 번째 노드(Node)의 위치를 지정하는 것이 중요ㅛ ④ 예를들어 [3, 4, 5, 6, 7, 7, 8, 9, 9] 는 -> [3, 4, 5, 6, 7, 8, 9] 출력 (2). 소스 코드 PYTHON #remove_dup_linkedlist.py import unittest class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(..

OS/Windows 10

윈도우10 팁 - 설치 후 최적화(간편한 기본 앱 삭제 프로그램 다운로드)

윈도우10 최적화 - 기본 앱 삭제 프로그램 (1). 기본 설명 * 윈도우10 설치 후 많은 앱들이 설치되어 있어 리소스 점유율이 많다. * Music, People, Sports, Phone 등 이런 앱들은 휴대폰에서 다른 앱 으로충분히 사용하므로, 불필요시 무조건 삭제! * 메모리가 8기가 이하는, 불필요한 앱 삭제 시 상당한 리소스 활용 가능. * 윈도우10의 powerShell 로도 삭제 가능하지만, 프로그램 사용 시 더욱 편리! * 실수로 삭제 시 -> 재설치 모드도 제공하므로, 안전! (2). 앱 삭제 프로그램 다운로드 또는 제작자 홈페이지 [링크] (3). 프로그램실행 관리자 권한으로 실행한다. (4). 기본 앱 삭제 화면 삭제하고자 하는 프로그램 선택 후 클릭 Show Log는 체크 하지 ..

언어/Python

파이썬 알고리즘 - 문자열을 입력받아 중복단어 압축하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(5) (1). 개발자 면접 트레이닝 - 문자열을 입력받아 중복되는 문자를 압축하는 알고리즘 ① Buffer를 활용하여 문자의 입력 순서대로 중복되는지 체크하자. ② for 문과 if문으로 간단하게 작성 가능다. ③ 입력문자의 길이와 출력문자의 길이가 다를 경우 예외도 반드시 처리 ④ 반복되는 문자가 없을 경우 예외도 반드시 처리 ⑤ 예를들어 AABBBBBCCDEFF 는 -> A2B5C2D1E1F2 , ABC -> ABC (2). 소스 코드 PYTHON #string_comp.py import unittest def compressword(input): buffer = None output = "" cnt = 1 for ch in input: if buffer..

언어/Python

파이썬 알고리즘 - 공백을 %20으로 변환하기

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(4) (1). 개발자 면접 트레이닝 - 공백을 %20으로 변환 하는 알고리즘 ① 파이썬의 기본 함수를 활용해 아주 쉽게 작성 가능 ② replace, strip 함수 사용 ③ 예를들어 hey%20how%20are%20you = hey how are you 와 같이 결과가 같다. (2). 소스 코드 PYTHON #encode_space.py import unittest #공백을 %20으로 변환하는 함수 def encode_space(str): return str.strip().replace(" ", "%20") class encode_space_test(unittest.TestCase): def test(self): self.assertEqual("hey%20..

언어/Python

파이썬 알고리즘 - 문자열로 서로 다른 단어 만들어내기(Anagram)

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(3) (1). 개발자 면접 트레이닝 - 두 문자열이 구성 요소가 같은지 확인(Anagram)하는 알고리즘 ① 파이썬의 join, sorted, strip 함수를 활용 ② 소문자로 변환 후 정렬이 핵심 ③ 예를들어 elivs 는 = lives , basic = isabc 와 같이 구성요소가 같다. (2). 소스 코드 PYTHON #anagram.py import unittest #두 문자열을 입력받아 정렬 한 후 같은 지 비교 (문자로 서로 다른 단어 만들어 내기) def anagram(str1, str2): if ''.join(sorted(str1.lower())).strip() == ''.join(sorted(str2.lower())).strip(): #대..

언어/Python

파이썬 알고리즘 - 문자열 입력받아 역(Reverse)으로 출력

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(2) (1). 개발자 면접 트레이닝 - 문자열 입력받아 역으로 출력(Reverse) 알고리즘 ① 2가지 방법으로 접근 한다. ② 첫 번째 방법은 파이썬 리스트 활용 ③ 두 번째 방법은 스택 구조 활용 ④ 예를들어 ABCD 는 -> DCBA 출력 , ABAD -> DABA 출력 (2). 소스 코드 PYTHON #reverseStr.py import unittest # 방법1 : 파이썬 리스트 활용 def reverseString(str): return str[::-1] # 방법2 : 스택(append, pop) 구조 활용 def reverseString2(str): stack = [] for ch in str: stack.append(ch) result = "..

언어/Python

파이썬 알고리즘 - 문자열에 포함된 문자들이 전부 유일한지 검사

개발자 면접 트레이딩 - 파이썬 알고리즘 문제(1) (1). 개발자 면접 트레이닝 - 문자열에 포함된 문자들이 전부 유일한지 검사하는 알고리즘 ① 모든 문자를 비교하는 것은 시간 복잡도가 높으므로, 부적합하다고 볼 수 있다. ② Hash를 사용하여 시간 복잡도를 낮추는 방향으로 작성해 보도록 하자. ③ 아스키 코드는 모두 256개 ④ 예를들어 ABCD 는 -> 순수 문자열 , ABAD -> 중복 문자열 (2). 소스 코드 PYTHON # isUniqChar.py def isUniqChar(str): if(len(str) > 256): return False hash = [False] * 256 for ch in str: #print(ord(ch)) 문자를 아스키 코드번호로 변환 if(hash[ord(ch..

개발도구/Atom & VScode

아톰(Atom) 에디터 - 파이썬(Python) 실행 방법

아톰(Atom) 에디터 - 파이썬(Python) 실행 방법 (1). 아톰 에디터 실행 및 패키지 설치 File > Settings > Install -> script 검색 후 설치 (2). 단축키 Run(Shift + Ctrl + B) 버튼을 사용하자. (MacOS의 경우 : cmd + i ) (3). 실행확인 (4). 주의사항 * 파이썬이 설치되어 있어야 한다. * 설치되어 있지 않다면, 본 블로그의 파이썬 설치 포스트를 참조하여 설치 한다.

언어/Python

파이썬(Python) 소개 및 설치하기

파이썬(Python)? (1). 소개 및 장점 파이썬이란 1990년에 암스테르담의 귀도 반 로섬(Guido Van Rossum)에 의하여 만들어진 인터프리터 언어이다. 뱀의 이름을 형상으로한 언어로써 대부분의 파이썬 교재에 아이콘이 뱀 모양으로 그려진 이유가 여기에 있다. 장점은 아래와 같다. ① 강력하다 ② 간결하다.③ 빠른 개발 속도 ④ 흥미를 유발하는 코딩 방식 ⑤ 무료이다. (2). 간결한 파이썬 코드 예제 메뉴명 추가를 위한 설정 PYTHON # simple.py languages = ['python', 'perl', 'c', 'java'] for lang in languages: if lang in ['python', 'perl']: print("%6s need interpreter" % la..

[좋은사람]
좋은사람의 개발 노트