본문 바로가기
728x90

전체 글348

[SWEA] 4873. 반복문자 지우기 - Python https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문자열 s에서 반복된 문자를 지우려고 한다. 지워진 부분은 다시 앞뒤를 연결하는데, 만약 연결에 의해 또 반복 문자가 생 기면 이부분을 다시 지운다. 반복 문자를 지운 후 남은 문자열의 길이를 출력하시오. 남은 문자열이 없으면 0을 출력한다. 다음은 CAAABBA에서 반복문자를 지우는 경우의 예이다. CAAABBA 연속 문자 AA를 지우고 C와 A를 잇는다. CABBA 연속 문자 BB를 지우고 A와 A를 잇는다. CAA 연속 문자 AA를 지.. 2022. 2. 22.
[SWEA] 4866. 괄호검사 - Python https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 주어진 입력에서 괄호 {}, ()가 제대로 짝을 이뤘는지 검사하는 프로그램을 만드시오. 예를 들어 {( )}는 제대로 된 짝이지만, {( })는 제대로 된 짝이 아니다. 입력은 한 줄의 파이썬 코드일수도 있고, 괄호만 주 어질 수도 있다. 정상적으로 짝을 이룬 경우 1, 그렇지 않으면 0을 출력한다. print(‘{‘) 같은 경우는 입력으로 주어지지 않으므로 고려하지 않아도 된다. 1. def fun(arr): stack = ['']*len.. 2022. 2. 22.
[SWEA] 4869. 종이 붙이기 - Python https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 어린이 알고리즘 교실의 선생님은 경우의 수 놀이를 위해, 그림처럼 가로x세로 길이가 10x20, 20x20인 직사각형 종이를 잔뜩 준비했다. 그리고 교실 바닥에 20xN 크기의 직사각형을 테이프로 표시하고, 이 안에 준비한 종이를 빈틈없이 붙이는 방법을 찾아 보려고 한다. N이 30인 경우 다음 그림처럼 종이를 붙일 수 있다. 10의 배수인 N이 주어졌을 때, 종이를 붙이는 모든 경우를 찾으려면 테이프로 만든 표시한 영역을 몇 개나 만들어야.. 2022. 2. 22.
[Python] Baby-gin-Game / 완전 검색, 탐욕 알고리즘 설명 0~9 사이의 숫자 카드에서 임의의 카드 6장을 뽑았을 때, 3장의 카드가 연속적인 번호를 갖는 경우run이라 하고, 3장의 카드가 동일한 번호를 갖는 경우를 triplet이라고 한다. 그리고, 6장의 카드가 run과 triplet로만 구성된 경우를 baby-gin으로 부른다. 6자리의 숫자를 입력 받아 baby-gin 여부를 판단하는 프로그램을 작성하라. ex) 667767 : 2개의 triplet -> baby-gin 054060 : 1개의 run과 한개의 triplet -> baby-gin 101123 : 1개의 triplet or 1개의 run-> not baby-gin 완전 검색 (Exaustive Search) 문제의 해법으로 생각할 수 있는 모든 경우의 수를 나열해보고 확인하는 기법이다.. 2022. 2. 21.
[Python] 정렬 버블 정렬 (Bubble Sort) 인접한 두 개의 원소를 비교하며 자리를 계속 교환하는 방식 시간 복잡도 : O(n^2) 코딩이 가장 손 쉽다. 알고리즘 기법 : 비교와 교환 # arr : 정렬할 list def BubbleSort(arr): N = len(arr) # 범위의 끝 위치 for i in range(N-1,0,-1): for j in range(0,i): # 왼쪽 원소가 더 크면 오른쪽 원소와 교환 if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr arr = [5,1,2,4,3] print(BubbleSort(arr)) # [1, 2, 3, 4, 5]​ 카운팅 정렬 (Counting Sort) 항목들의 순서를 결정하기.. 2022. 2. 21.
[Python] 알고리즘 좋은 알고리즘 정확성 : 얼마나 정확하게 동작하는가 작업량 : 얼마나 적은 연산으로 원하는 결과를 얻어내는가 메모리 사용량 : 얼마나 메모리 사용량이 적은가 단순성 : 얼마나 단순한가 최적성 : 더 이상 개선할 여지없이 최적화되었는가 시간복잡도(Time Complexity) 알고리즘의 작업량 실제 걸리는 시간을 측정, 실행되는 명령문의 개수를 계산 시간 복잡도 - 빅오 표기법(Big-Oh Notation) 시간 복잡도 함수 중에서 가장 큰 영향력을 주는 n에 대한 항만을 표시 계수(Coefficient)는 생략 ex) O(3n+2) = O(n), O(4) = O(1) 2022. 2. 21.
반응형