알고리즘 6

[Programmers/Level 0] 대소문자 바꿔서 출력하기

문제 설명영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.제한사항1 ≤ str의 길이 ≤ 20str은 알파벳으로 이루어진 문자열입니다.입출력 예입력 #1aBcDeFg출력 #1AbCdEfG  소스코드const readline = require('readline');const rl = readline.createInterface({ input: process.stdin, output: process.stdout});let input = [];rl.on('line', function (line) { input = [line];}).on('close',function(){ str = input[0]..

알고리즘 2025.03.19

[알고리즘 문제 풀이] 계산기1

📍  문제 요약문자열로 이루어진 계산식이 주어질 때, 이 계산식을 후위 표기식으로 바꾸어 계산하는 프로그램을 작성하시오.예를 들어“3+4+5+6+7”  라는 문자열로 된 계산식을 후위 표기식으로 바꾸면 다음과 같다."34+5+6+7+" 변환된 식을 계산하면 25를 얻을 수 있다.문자열 계산식을 구성하는 연산자는 + 하나뿐이며 피연산자인 숫자는 0 ~ 9의 정수만 주어진다. 🧩 로직 설계 1 >> 해답# 중위 표기식으로 주어지는 인풋을 후위표기식으로 바꾸는 방법# 숫자 (피연산자)는 출렦하꼬# 연산자 > 스택에 넣기# 스택의 마지막 요소보다 현재 연산자가 우선순위가 높으면 넣고# 그렇지 않으면 스택이 비거나, 혹은 스택의 마지막 요소가 우선순위가 낮을 때까지 출력 후 스택에 삽입 💡 소스 코드# 중위..

카테고리 없음 2024.09.12

Stack 2

계산기의 의미계산기 1 : 계산기 2 :  계산기 1더보기문자열로 된 계산식이 주어질 때, 스택을 이용하여 이 계산식의 값을 계산할 수 있다.문자열 수식 계산의 일반적 방법step1. 중위 표기법의 수식을 후위 표기법으로 변경한다. (스택 이용) > 중위 표기법 (infix notation)- 연산자를 피연산자의 가운데 표기하는 방법ex) A+B > 후위 표기법(posftix notation)- 연산자를 피연산자 뒤에 표기하는 방법 ex) AB+ step2. 후위 표기법의 수식을 스택을 이용하여 계산한다. step1. 중위표기식의 후위표기식 변환 방법 1더보기수식의 각 연산자에 대해서 우선순위에 따라 괄호를 사용하여 다시 표현한다.각 연산자를 그에 대응하는 오른쪽괄호의 뒤로 이동시킨다.괄호를 제거한다.e..

카테고리 없음 2024.09.12

[알고리즘 문제 풀이] 길찾기

📍  문제 요약그림과 같이 도식화한 지도에서 A도시에서 출발하여 B도시로 가는 길이 존재하는지 조사하려고 한다.길 중간 중간에는 최대 2개의 갈림길이 존재하고, 모든 길은 일방 통행으로 되돌아오는 것이 불가능하다.다음과 같이 길이 주어질 때, A도시에서 B도시로 가는 길이 존재하는지 알아내는 프로그램을 작성하여라. - A와 B는 숫자 0과 99으로 고정된다. - 모든 길은 순서쌍으로 나타내어진다. 위 예시에서 2번에서 출발 할 수 있는 길의 표현은 (2, 5), (2, 9)로 나타낼 수 있다. - 가는 길의 개수와 상관없이 한가지 길이라도 존재한다면 길이 존재하는 것이다. - 단 화살표 방향을 거슬러 돌아갈 수는 없다.   💡 소스 코드# 0번 정점에서 시작해서 99번에 도착할 수 있으면, 1 아니면..

카테고리 없음 2024.09.12

[알고리즘 문제 풀이] 4871. 그래프 경로

📍  문제 요약V개 이내의 노드를 E개의 간선으로 연결한 방향성 그래프에 대한 정보가 주어질 때,특정한 두 개의 노드에 경로가 존재하는지 확인하는 프로그램을 만드시오.두 개의 노드에 대해 경로가 있으면 1, 없으면 0을 출력한다.예를 들어 다음과 같은 그래프에서 1에서 6으로 가는 경로를 찾는 경우, 경로가 존재하므로 1을 출력한다. 노드번호는 1번부터 존재하며, V개의 노드 중에는 간선으로 연결되지 않은 경우도 있을 수 있다. 🧩 로직 설계 1 >> 해답1) stack에 현재 경로를 저장한다.2) visited 리스트로 이미 방문한 노드를 체크한다.3) 반복문 안에서 현재 위치 (top) 에서 연결된 노드들을 확인한다.4) 방문하지 않은 노드를 발견하면 그곳으로 이동한다. (스택에 추가)5) 더 이..

카테고리 없음 2024.09.12

[알고리즘 문제 풀이] 4873. 반복 문자 지우기

📍  문제 요약문자열 s에서 반복된 문자를 지우려고 한다. 지워진 부분은 다시 앞뒤를 연결하는데,만약 연결에 의해 또 반복문자가 생기면 이부분을 다시 지운다.반복문자를 지운 후 남은 문자열의 길이를 출력 하시오. 남은 문자열이 없으면 0을 출력한다. 🧩 로직 설계 1 >> X1) 문자열 s를 스택에 1개씩 넣으면서 확인2) 스택에 넣을 때 TOP이 지금 넣을 것과 같다면, TOP을 pop하고 넣을 것도 넣지 않음3) 다음 것도 반복 ==> 반복 문자가 다 지워짐4) 스택에 남아 있는 요소의 길이 출력 🧩 로직 설계 2 >> O1) 문자열 s를 스택에 1개씩 넣으면서 확인2) 스택이 비어있으면 현재 요소에 스택 더하기3) 비어있지 않다면 스택의 마지막 요소와 현재 넣을 요소를 비교4) 같다면 마지막 ..

카테고리 없음 2024.09.11