분류 전체보기 645

[파이썬] 4874. Forth

출처 : swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. Forth라는 컴퓨터 언어는 스택 연산을 기반으로 하고 있어 후위 표기법을 사용한다. 예를 들어 3+4는 다음과 같이 표기한다. 3 4 + . Forth에서는 동작은 다음과 같다. 숫자는 스택에 넣는다. 연산자를 만나면 스택의 숫자 두 개를 꺼내 더하고 결과를 다시 스택에 넣는다. ‘.’은 스택에서 숫자를 꺼내 출력한다. Forth 코드의 연산 결과를 출력하는 프로그램을 만드..

coding test 2021.01.14

분할정복

합병 정렬 퀵 정렬 공통점 주어진 리스트를 두 개로 분할하고, 각각을 정렬 차이점 분할할 때, 단순하게 두 부분으로 나눔 분할할 때, 기준 아이템(Pivot Item)을 중심으로, 이보다 작은 것은 왼편, 큰 것은 오른편에 위치시킴 각 부분 정렬이 끝난 후, '합병'이란 후처리 작업이 필요 각 부분 정렬이 끝난 후, 후처리 작업이 필요로 하지 않음 퀵 정렬의 최악의 시간 복잡도는 O(n^2) 평균 복잡도는 nlogn

Backtracking

🧵 백트래킹(Backtracking) 해를 찾는 도중에 막히면(해가 아니면) 되돌아서 다시 해를 찾아가는 기법 최적화 문제, 결정 문제(문제의 조건을 만족하는 해가 존재하는지의 여부를 'yes' 또는 'no'로 답하는 문제. ex: 미로 찾기, n-Queen 문제, Map cloring, 부분 집합의 합(Subset Sum)문제 등)를 해결 어떤 노드의 유망성을 점검한 후에 유망하지 않다고 결정되면 그 노드의 부모로 되돌아가 다음 자식 노드로 감 어떤 노드를 방문하였을 때 그 노드를 포함한 경로가 해답이 될 수 없으면 그 노드는 유망하지 않음 반대로 해답의 가능성이 있으면 유망함. 가지치기(Pruning) : 유망하지 않은 노드가 포함되는 경로는 더 이상 고려하지 않음. 1. 상태 공간 Tree의 깊이 ..

계산기

출처 : sw expert academy 파이썬 SW문제해결 기본 - Stack2 1차시 01 계산기 🎇 중위표기식의 후위표기식으로 변환 방법1 1. 수식의 각 연산자에 대해서 우선순위에 따라 괄호를 사용하여 다시 표현 2. 각 연산자를 그에 대응하는 오른쪽 괄호의 뒤로 이동 3. 괄호 제거 A*B-C/D 1단계 : ((A*B)-(C/D)) 2단계 : ((AB)*(CD)/)- 3단계 : AB*CD/- 🎨 스택을 이용한 중위표기식의 후위표기식으로 변환 방법2 1. 입력 받은 중위표기식에서 토큰(수식에서 의미 있는 최소의 단위)을 읽음 2. 토큰이 피연산자이면 토큰을 출력 3. 토큰이 연산자(괄호포함)일 경우 - 우선순위가 높으면 스택에 push - 우선순위가 안높으면 연산자의 우선순위가 토큰의 우선순위보다..

[파이썬] 4873. 반복문자 지우기

swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 문자열 s에서 반복된 문자를 지우려고 한다. 지워진 부분은 다시 앞뒤를 연결하는데, 만약 연결에 의해 또 반복문자가 생기면 이부분을 다시 지운다. 반복문자를 지운 후 남은 문자열의 길이를 출력 하시오. 남은 문자열이 없으면 0을 출력한다. 다음은 CAAABBA에서 반복문자를 지우는 경우의 예이다. CAAABBA 연속 문자 AA를 지우고 C와 A를 잇는다. CABBA 연속 문자 BB를 ..

coding test 2021.01.13

[파이썬] 4871. 그래프 경로

swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. V개 이내의 노드를 E개의 간선으로 연결한 방향성 그래프에 대한 정보가 주어질 때, 특정한 두 개의 노드에 경로가 존재하는지 확인하는 프로그램을 만드시오. 두 개의 노드에 대해 경로가 있으면 1, 없으면 0을 출력한다. 예를 들어 다음과 같은 그래프에서 1에서 6으로 가는 경로를 찾는 경우, 경로가 존재하므로 1을 출력한다. 노드번호는 1번부터 존재하며, V개의 노드 중에는 간선으로 ..

coding test 2021.01.13

[파이썬] 4866. 괄호검사

swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 주어진 입력에서 괄호 {}, ()가 제대로 짝을 이뤘는지 검사하는 프로그램을 만드시오. 예를 들어 {( )}는 제대로 된 짝이지만, {( })는 제대로 된 짝이 아니다. 입력은 한 줄의 파이썬 코드일수도 있고, 괄호만 주어질 수도 있다. 정상적으로 짝을 이룬 경우 1, 그렇지 않으면 0을 출력한다. print(‘{‘) 같은 경우는 입력으로 주어지지 않으므로 고려하지 않아도 된다. [입..

coding test 2021.01.12

[파이썬] 4869. 종이붙이기

swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 어린이 알고리즘 교실의 선생님은 경우의 수 놀이를 위해, 그림처럼 가로x세로 길이가 10x20, 20x20인 직사각형 종이를 잔뜩 준비했다. 그리고 교실 바닥에 20xN 크기의 직사각형을 테이프로 표시하고, 이 안에 준비한 종이를 빈틈없이 붙이는 방법을 찾아보려고 한다. N이 30인 경우 다음 그림처럼 종이를 붙일 수 있다. 10의 배수인 N이 주어졌을 때, 종이를 붙이는 모든 경우를..

coding test 2021.01.11

[파이썬] 4865. 글자수

swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 두 개의 문자열 str1과 str2가 주어진다. 문자열 str1에 포함된 글자들이 str2에 몇 개씩 들어있는지 찾고, 그중 가장 많은 글자의 개수를 출력하는 프로그램을 만드시오. 예를 들어 str1 = “ABCA”, str2 = “ABABCA”인 경우, str1의 A가 str2에 3개 있으므로 가장 많은 글자가 되고 3을 출력한 다. 파이썬의 경우 딕셔너리를 이용할 수 있다. [입력..

coding test 2021.01.11

[파이썬] 4861. 회문

swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. ABBA처럼 어느 방향에서 읽어도 같은 문자열을 회문이라 한다. NxN 크기의 글자판에서 길이가 M인 회문을 찾아 출력하는 프로그램을 만드시오. 회문은 1개가 존재하는데, 가로 뿐만 아니라 세로로 찾아질 수도 있다. 예를 들어 N=10, M=10 일 때, 다음과 같이 회문을 찾을 수 있다. G O F F A K W F S M O Y E C R S L D L Q U J A J Q V S..

coding test 2021.01.08