알고리즘 8

프로그래머스 Lv.1 - 신규 아이디 추천

https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제에 주어진 조건들에 맞춰 하나씩 작성을 하고, 정규식을 이용하여 문제를 해결한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class Solution { public String solution(String newId) { newId = newId.toLowerCase(); newId = newId.replaceAll("[^a-z0-9\\-_...

Programmers/Lv.1 2023.10.29

프로그래머스 Lv.1 - 시저 암호

https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 알파벳인 경우에만 n만큼 뒤에 알파벳으로 대체 되게 한다. 2. 'z' 또는 'Z'를 넘어간다면 그 만큼을 'a' 또는 'A'에서 시작하게 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 class Solution { public String solution(String s, int n) { StringBuilder answe..

Programmers/Lv.1 2023.10.28

프로그래머스 Lv.1 - 문자열 내 p와 y의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/12916 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문자열 s를 char형 배열로 만든 후, 배열 원소를 참조한다. 2. p와 y가 나오면 각각 변수의 값을 하나씩 저장한다. 3. p와 y 개수를 저장한 변수의 값을 비교하여 리턴한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Solution { boolean solution(String s) { int ps = 0; int ys = 0; for(char c ..

Programmers/Lv.1 2023.10.28

프로그래머스 Lv.2 - 이진 변환 반복하기

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 1이 나올 때 까지의 반복문을 생성한다. 2. replace를 이용하여 0을 모두 제거하고, 제거된 0의 갯수를 저장한다. 3. toString을 이용하여 0이 제거된 이후의 문자열의 숫자를 2진법의 수로 변경하여 저장한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { public int[] solution(String s) ..

Programmers/Lv.2 2023.10.28

프로그래머스 Lv.2 - 숫자의 표현

https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 1부터 n까지의 수를 시작점이 되는 수로 설정한다. 2. 시작점부터 하나씩 증가되는 수를 더하여 n을 넘지 않을 때 까지 더한다. 3. 결과값이 n과 같다면 리턴되는 값을 하나씩 증가시킨다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class Solution { public int solution(int n) { int answer = ..

Programmers/Lv.2 2023.10.28

프로그래머스 Lv.2 - 카펫

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 갈색 영역의 갯수와 노란색 영역의 갯수를 더하여, 전체 넓이를 구한다. 2. 가로를 1이라고 했을 때, 하나씩 증가시켜 각 경우에 맞는 세로 길이를 구한다. 3. 나머지가 0일 때, 갈색 영역의 갯수를 구하는데 (가로 + 세로) * 2 - 4(겹치는 영역) 식을 이용한다. 4. area에서 위에서 구한 갈색 영역의 갯수를 빼서 노란색 영역 갯수와 같다면 이 때의 가로, 세로 길이를 배열에 저..

Programmers/Lv.2 2023.10.28

프로그래머스 Lv.2 - 수식 최대화

https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 우선순위가 다른 각 케이스를 문자열 배열로 생성한다. 2. expression을 split 하여 숫자와 연산자를 리스트에 저장한다. 3. 우선순위가 우선인 연산자를 계산하여 그 연산자가 없어질 때 까지 계산을 한다. ex) "*+-", 100 + 50 * 30 - 20 이라고 하면, 100 +150 - 20, 250 - 20, 230 순으로 로직을 작성 1 2 3 4 5 6 7 8 9 10 ..

Programmers/Lv.2 2023.10.28

트리

트리란? - 그래프의 일종으로 정점과 간선을 이용하여 데이터의 배치 형태를 추상화한 자료구조 - 비순환 구조 트리 관련 용어 루트 : 트리의 시작부분 즉, 가장 윗 부분을 나타낸다. 하나의 트리에는 하나의 루트가 있다. 리프 : 트리의 가장 아랫부분에 위치하는 노드를 리프라고 한다. 이 때, 맨 아래에 있는 노드가 아닌 자식 노드가 없는 노드를 나타낸다. (terminal node, external node) 안쪽 노드 : 루트 및 리프 노드를 제외한 노드를 안쪽 노드라고 한다. (non-terminal node) 자식 : 노드 바로 아래에 연결된 노드를 자식 노드라고 한다. 노드는 자식을 여러 개 가질 수 있다. 부모 : 노드에서 바로 위쪽에 연결된 노드를 부모 노드라고 한다. 형제 : 같은 부모를 가..

자료구조 2023.08.24