본문 바로가기

Programming language19

[Algorithm] 선형구조-리스트/스택/큐/데크 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 아래에서 설명할 자료구조는 파이썬에서 리스트를 이용하면 대부분 구현 가능하다. 순차 리스트 (> static) : 배열과 유사하게 동일한 유형의 자료를 연속적으로 나열하기 위해 사용되는 추상 데이터 구조(ADT) * ADT(추상화 자료 구조): 프로그램의 대상이 되는 무엇인가를 추상화하여 표현하는 것으로 유지보수가 용이 - 특정 위치에서의 삽입/삭제 = O(n) - i번째 노드 탐색 수행 시간 = O(1) > 각 배열의 위치를 알고 있기 때문에 연결리스트 (> dynamic) : 자료의 연결을 위해 포인터 사용, 각 노드는 다음 노드를 가리키는 포인터를 가짐 - 특정 위치에서의 삽입/삭제 = O(1) - i번째 노드 탐색 수행 시간 = O(n) 배열을 이용해.. 2022. 1. 16.
[CodingStudy] Beakjoon 6588번 골드 바흐의 추측 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Beakjoon 6588번_골드 바흐의 추측 https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 효율성을 따지는 부분이 어려운 문제이다. 우선 핵심은 소수 판별시 에라토스테네스의 체 이용! 에라토스테네스의 체는 여러개의 소수 판별에 용이하다. 알고리즘에 대해 간단히 설명해보면 다음과 같다. 1. 모든 수에서 가장 작은 소수 2 > 나머지 수 중 2의 배수 모두 지움 2. 다음 작.. 2022. 1. 2.
[CodingStudy] Heap -더 맵게 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_Heap -더 맵게 문제 자체는 어렵지 않았는데 효율성에서 막혔던 문제이다. sort를 매번 반복때마다 사용하게 되면 시간복잡도가 O( N * N logN ) 가 된다. 효율성을 통과하기 위해서는 heapq 모듈을 쓰는 방법이 있었다. (다른 방법이 있다면 알려주세용..) heapq 알고리즘 heap= 최소/최대 규칙을 따르는 이진 트리 최소 힙=부모 노드 값이 자식 노드보다 항상 작거나 같음 최대 힙=부모 노드 값이 자식 노드보다 항상 크거나 같음 파이썬에서 힙큐알고리즘(우선순위 큐 알고리즘) 내장 모듈을 제공한다. 즉 따로 정렬을 하지 않아도 가장 낮은 값이 가장 낮은 인덱스에 위치한다. heapq.heapify(list) list를 힙으로 .. 2021. 11. 22.
[CodingStudy] BFS-게임맵 최단거리 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스-BFS_게임맵 최단거리 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 생각해야 할 부분 1. BFS(Breadth First Search) 알고리즘 개념 이용 > 한번 방문한 위치 재방문하지 않도록 이미 지나온 길은 0으로 visit 체크 2. collection 모듈에서 제공하는 deque는 s.. 2021. 11. 9.
[CodingStudy] 완전 탐색 -소수 찾기 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_완전 탐색 -소수 찾기 문제. 한자리 숫자가 적힌 문자열 배열 numbers가 주어졌을 때, 만들 수 있는 소수의 개수 return ( numbers는 0~9까지 숫자를 요소로 가지며 리스트의 길이는 1~7 ) ex) [0, 1, 1]으로는 소수 [11, 101]를 만들 수 있으므로 2 return import itertools def solution(numbers): numlist=[] for s in range(1, len(numbers)+1): # 각 자리수 별로 순열값 생성해서 list에 추가 numlist=numlist+list(map(''.join, itertools.permutations(numbers, s))) numlist=lis.. 2021. 8. 27.
[CodingStudy] 정렬 -가장 큰 수 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_정렬 -가장 큰 수 이 문제는 전혀 다른 방향으로 코드를 짜는 바람에 다른 분들의 코드를 참고하여 다시 공부했다 ㅠㅠ 생각보다 너무 짧아서 놀랐다..파이썬은 참 좋은 언어야.. 파이썬 공부를 코드 짤때 그때그때 하다보니까 모르는 함수나 문법이 아직도 많다..ㅠㅠ 문제. 0 또는 양의 정수가 담긴 배열 numbers가 주어질 때, 재배치하여 만들 수 있는 가장 큰 수를 문자열로 return (numbers의 길이는 1 이상 100,000 이하, 원소의 길이는 1,000 이하) ex) [3, 30, 34, 5, 9] > 9534330 / [6, 10, 2] > 6210 def solution(numbers): # numbers리스트의 요소 타입을 s.. 2021. 8. 26.
[CodingStudy] 신규 아이디 추천 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_2021 카카오 BLIND RECRUITMENT [ 신규 아이디 추천 ] 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램. 조건 - 아이디의 길이는 3자 이상 15자 이하. - 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있음. - 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없음. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 .. 2021. 8. 2.
[CodingStudy] 숫자 문자열과 영단어 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_2021 카카오 채용연계형 인턴십 문제 [ 숫자 문자열과 영단어 ] 숫자 문자열의 일부가 영단어로 바뀌어졌거나 그대로인 문자열 s가 입력으로 주어짐. 문자열 s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성. 조건 - 1 2021. 7. 14.
Non-ASCII character '\xeb' 오류 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Non-ASCII character '\xeb' 오류 Non-ASCII character '\xeb' 오류가 발생하는 경우 간단하다. 파이썬 코드에 한글이 포함되어 있기 때문이므로 코드의 맨 윗줄에 #-*-coding: utf -8-*- 를 써주면 해결! 2020. 10. 20.
728x90
반응형