일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 판다스
- CNN
- 연산자
- 야학
- 이것이 자바다
- 머신러닝야학
- flatten
- 파이썬
- JavaScript
- 데이터베이스
- 머신러닝(딥러닝)
- tensorflow
- MySQL
- reshape
- 생활코딩 머신러닝야학
- pandas
- 데이터베이스 개론
- Java
- Database
- 딥러닝
- 개발자
- 생활코딩
- 머신러닝
- Python
- 생활코딩 데이터베이스
- LeNet
- 데이터베이서
- 카카오클라우드스쿨2기
- Today
- Total
목록알고리즘/프로그래머스 (24)
IT's 우
📖 풀이한 문제 프로그래머스 - JadenCase 문자열 만들기 💡 문제에서 사용된 알고리즘 String 📜 코드 설명 s의 길이만큼 반복문으로 s안에 현재 인덱스부터 공백이 있는지의 여부에 따라 변환한다. 반복문에서 i번째가 공백이라면 answer에 공백을 더해주고 반복문을 continue 한다. 반복문에서 s에서 i번째 이후에 공백이 없더라면 현재 변환할 문자 (w)에 s에서 i부터 끝까지를 넣어준다. i를 len을 가리키게 하여 반복문을 다음에 종료할 수 있도록 한다. 반복문에서 s에서 i번째 이후 공백이 있더라면 w에 s부터 공백 인덱스 전까지의 문자를 넣어준다. i를 idx -1로 바꾸어서 다음 i를 공백으로 가도록 한다. w는 맨 앞 글자가 소문자라면 대문자로 바꿔주고 아니라면 그대로 둔다. ..
📖 풀이한 문제 프로그래머스 - n진수 게임 💡 문제에서 사용된 알고리즘 수학 📜 코드 설명 makeNum = 012345678 이런 식으로 붙여서 튜브가 말할 인덱스를 출력해 줄 것이다. 변수 num : makeNum에 붙일 다음 숫자 첫번째 반복문에서는 makeNum에 다음 숫자를 넣어준다. 두 번째 반복문에서는 makeNum의 길이가 p(튜브가 말할 인덱스) 보다 크거나 같으면 answer에 makeNum에 p에 해당하는 인덱스의 문자를 붙여주고. t를 1 줄여준다. t가 0이면 다 말했으므로 전체 반복문을 종료한다. 아니라면 p에 다음 인덱스를 찾아주기 위하여 전체 인원을 더해준다. 두 번째 반복문이 끝났다는 거는 makeNum에 다음 숫자를 더해야 하므로 num++해준다. 📜 코드 class S..
📖 풀이한 문제 프로그래머스 - 압축 💡 문제에서 사용된 알고리즘 HashMap 📜 코드 설명 map을 사전처럼 사용 (key : 단어, value : 색인 번호) 변수 idx : 사전에 색인번호 처음에 map에 A - Z까지의 idx를 넣어준다. 리스트 list : answer에 해당하는 색인번호를 넣을 리스트 for문: w 찾기 시작하는 반복문 while문 : w를 완성하는 반복문 반복문을 사용하여 단어를 탐색한다. for문안에 while문에서 다음 문자를 붙인 단어가 map에 있더라면 현재 문자(now)에 다음 문자를 붙여주고 사전에 없더라면 다음 문자를 붙인 단어를 map에 넣어준다. for문에 i가 맨 마지막이라면 다음 문자가 없으므로 그 점을 유의해준다. while 반복문이 끝난 후 사전에 들..
📖 풀이한 문제 프로그래머스 - n^2 배열 자르기 💡 문제에서 사용된 알고리즘 수학 📜 코드 설명 left와 right의 인덱스에 해당하는 값을 넣을 배열 // 답 배열 (left ~ right) int[] answer = new int[(int)(right - left + 1)]; answerIdx : answer에 해당하는 인덱스 left와 right의 위치 (이때 left와 right가 long 타입인 점을 유의하여야 한다.) // left와 right의 2차원 배열에서 위치 int left_r = (int)(left / n); int left_c = (int)(left % n); int right_r = (int)(right / n); int right_c = (int)(right % n); 2..
📖 풀이한 문제 프로그래머스 - k진수에서 소수 개수 구하기 💡 문제에서 사용된 알고리즘 수학 📜 코드 설명 changeBinary 메서드: k진수로 바꾸기 checkPrime 메서드 : 소수인지 확인 (이때 에라토스테네스의 체의 원리로 풀어 시간초과를 방지하였다.) num : 소수인지 확인할 p의 값 0을 만났더라면 현재까지의 수 num을 소수인지 확인해주었다. 0이 아니라면 현재 num의 해당하는 인덱스의 문자를 now 뒤에 추가해주었고, 문자가 끝이라면 now가 소수인지 한 번 더 확인해주었는데 생각해보니 이것은 그냥 반복문이 끝나고 확인해주어도 됬겠다싶다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 ..
📖 풀이한 문제 프로그래머스 - 숫자의 표현 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제에서 사용된 알고리즘 투포인터 📜 코드 설명 연속된 구간의 시작을 left, 끝을 right로 주었다. 연속된 구간의 합(left ~ right)은 num (초기화 : left = 1, right = 1, num = 1) right가 n이라면 탐색의 끝(right 하나가 n을 충족하므로)이므로 answer을 하나 추가해 주고 반복문을 끝내주었다. 그 외에 경우는 num이 n인 경우 ( 연속된 구간이 n인 경우를 찾음) (포인터를 둘 다 하나씩 늘려준다.) a..
📖 풀이한 문제 프로그래머스 - 짝지어 제거하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제에서 사용된 알고리즘 스택 📜 코드 설명 스택의 후입선출구조를 이용해서 문제를 풀어주었다. 스택이 비어있다면 문자를 넣어주었다. 스택이 비어있지 않다면 스택에 최근에 들어왔던 문자(peek)와 현재 문자가 같다면 짝지어진 문자이므로 스택 pop을 해주었다. 같지 않다면 현재 문자를 스택에 넣어주었다. 위 과정을 문자열의 문자를 하나씩 확인해주며 반복해 주고 반복문이 끝나고 스택이 비어있다면 짝지어 모두 제거를 성공한 것이 아니라면 실패한 것이다. 📜 코드..

📖 풀이한 문제 프로그래머스 - 기지국 설치 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제에서 사용된 알고리즘 구현 📜 코드 설명 기지국 설치가 필요한 구간을 start, end로 찾아주면서 구간에 설치할 기지국의 개수를 구해주었다. start는 (시작이면 1) 전 기지국의 오른쪽의 전파가 전달되지 않는 시작 아파트 end는 (넘어가면 n(아파트 개수)) 현재 기지국의 왼쪽의 전파가 전달되지 않는 아파트 start