Algorithm
-
[프로그래머스] JavaScript | 가장 가까운 같은 글자Algorithm 2023. 1. 8. 23:07
문제 풀이 1) s로 주어진 문자열을 하나씩 스플릿하여 splitArr 배열에 담았다. 2) splitArr 의 길이만큼 반복한다. 3) 만약 첫번째(인덱스 0번) 위치일 경우 배열에 -1을 넣어준다. 4) 첫번째 위치가 아닐 경우 i 보다 하나씩 앞으로 옮겨가며 같은 문자인지 비교한다. 5) 같은 문자일 경우 i보다 얼마나 앞서 있는지 i - j 로 계산해서 배열에 담고, 반복문을 탈출한다. 6) 만약 j가 0일 경우 같은 문자가 없는 것이므로 배열에 -1을 넣어준다. 7) 마지막에 값이 담긴 배열 answer 를 리턴한다. 제출코드 및 채점결과
-
[프로그래머스] JavaScript | 크기가 작은 부분 문자열Algorithm 2023. 1. 8. 21:37
https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1) 마지막에 조건에 맞는 결과를 리턴하기 위한 배열을 만들어준다. 2) t의 길이만큼 반복한다. (여기서 temp의 길이가 p의 길이보다 작을 때 반복문을 탈출하도록 만들어 줘야하는데 누락...) 3) t에서 i부터 p의 길이만큼 문자열을 잘라 temp에 담는다. 4) temp의 길이가 p의 길이와 같고, 숫자 temp가 숫자 p보다 작을 때 arr에 담는다. 5) arr의 길이를 ..
-
[백준 알고리즘] C++ | 10757번 큰 수 A+BAlgorithm 2022. 8. 19. 01:10
자바스크립트에서 문자열로 구성된 숫자들을 정렬하려고 했는데, bigint 로 바뀌어 정확히 계산될 수 없는 경우도 있다고 한다. 따라서 본 문제를 c++ 로 구현하여, 실제로 어떤식으로 계산이 이뤄지는지 알아보고자 했다. - 처음엔 단순히 더하기인데, 왜 복잡한 알고리즘까지 적용되는건가(?)라는 생각이 들었다. 하지만 이내 컴퓨터가 어떤 시퀀스와 로직을 가지고 (성능까지 고려하여) 처리할 수 있도록 하는게 '개발자'였구나 라는 깊은 깨달음이... - 자바스크립트, 파이썬으로 해치우듯 문제만 해결했더니 그 함수들이 실제로 어떻게 구현되었고, 동작하는지 간과하고 있었던 부분이 컷다. https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 ..
-
[프로그래머스] JavaScript | 올바른 괄호 (스택)Algorithm 2022. 8. 17. 00:49
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 - 스택을 사용해서 괄호의 ( ) 쌍이 맞는지 확인하는 문제로, 만약 ) 시작하거나 (로 시작해도 (() 처럼 쌍이 맞지 않을 경우 false를 리턴해야한다. 스택을 사용할 경우 마지막에 배열의 개수가 0인지 검증하고, 아니면 단순히 덧셈, 뺄셈으로 0인지 검증해도 된다. - 이번 문제는 이전에 백준에서도 여러 케이스로 풀어서 '('이면 더하고, ')'이면 빼질 수 있도록 했는데, 일부..
-
[프로그래머스] JavaScript | 숫자 문자열과 영단어Algorithm 2022. 8. 15. 18:14
https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 - 처음에 {key: value} 로 잡아두고 key 에 맞는 value로 replace 하려고 했으나 뭔가 코드가 복잡해지는 것 같아 몇가지 풀이를 찾아보았다. - 다른 사람들의 풀이를 보니까, 이 문제의 특성 중 인덱스와 영단어가 일치하는 것을 활용하였다. 1) 문자열이 들어오는 s를 변수에 담아 복사해두고, 영단어 배열만큼 반복문을 돌며 영단어와 일치할 경우 split하여 retu..
-
[백준 알고리즘] C++ | 0912번 괄호 더하기Algorithm 2022. 7. 6. 08:33
문제: https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net #include #include #include using namespace std; int main(void) { int k; cin >> k; while (k > 0) { k--; string input; cin >> input; stack st; string answer = "YES"; for (int i = 0; i < input.length(); i+..
-
[백준 알고리즘] C++ | 2669번 직사각형 네개의 합집합의 면적 구하기Algorithm 2022. 6. 15. 00:07
https://www.acmicpc.net/problem/2669 2669번: 직사각형 네개의 합집합의 면적 구하기 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각 www.acmicpc.net - 문제 - 제출한 코드 #include int arr[100][100] = { 0 }; int main() { int a; int b; int c; int d; int sum = 0; for (int i = 1; i
-
[백준] 2231번: 분해합(브루트포스) - PythonAlgorithm 2022. 3. 7. 18:10
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net [문제유형] - 브루트포스 [문제] [제출한 코드 및 풀이] - n을 입력받고, n의 가장 작은 생성자를 구해야 하기 때문에 minNum이라는 변수를 만들었다. - 자연수 n의 범위인 길이만큼 반목하게 해주고 1부터 시작되도록 범위를 지정했다. - 리스트를 만들어줘야하니 i를 문자열 형태로 바꿔주고 i + sum(arr) 한 값. 즉, i가 198 일경우 198 + (..