level2 [pro] 가장 큰 수 이 문제에서 핵심은 바로 앞 자리 수가 같은 문자열(수)들을 어떻게 배열하는가이다. 예를 들어 '6', '64', '600', '60'이 있을 경우, sorted() 함수에 넣고 오름차순 정렬해주면 ['6', '60', '600', '64']가 된다. 그러나 가장 큰 수를 만들어 주려면 정렬이 ['6', '64', '60', '600'] 이렇게 되어야 한다. 계속 앞자리 수부터 하나씩 뒤로 ... 다시풀문제코딩테스트정렬프로그래머스level2level2 Programers : 수식 최대화 -next_permutation() key point! : 연산자의 종류 개수에 따라 가능한 조합을 구하는 것이 관건 <algorithm> 에 next_permutation()을 이용하면 현재 조합에서 다음 순열을 구할 수 있음! tmp배열에 [0, 1, 2, 3, 4] 가 있을 때 [0,1,2,3,4] ~ [4,3,2,1,0] 까지 모든 조합으로 바꾸어 준다 반환형은 bool형이기 때문에 조건으로 사용! prev_permut... level2PROGRAMERSPROGRAMERS Programers : 조이스틱 (greedy) key point! 1) 조이스틱을 위/아래로 움직이는 것의 선택은 min을 이용해 해결 2) 조이스틱을 왼쪽/오른쪽 으로 움직이는 것의 선택은 먼저 'A'가 아닌 요소가 발견할 때 까지 찾기 --> 바꾼 name의 값을 'A'로 치환해주는 작업이 필요!... level2PROGRAMERSPROGRAMERS Programers : 주식 가격 (stack) 직관적인 풀이법 시간복잡도가 아슬아슬해 보인다 O(N^2) 보다 효율적이게 만드려다가 시간이 많이 소모되었다. (이럴 때에는 한번 해보는게 더 좋아보인다ㅠㅠ) 스택을 사용한 방법이 더 빠른 해결 방법! 값이 아닌 인덱스를 활용한 것이 key point!... level2PROGRAMERSPROGRAMERS [프로그래머스] 5주차_모음사전 문제 푼 날짜 : 2021-09-10 문제 링크 : 아래의 생각대로 코드를 구현하였다. 1~5자리로 만들 수 있는 모든 단어를 구해준다. (백트래킹) 구해진 단어들을 오름차순으로 정렬해준다. 찾고싶은 단어의 위치를 find함수를 통해 찾아주고, 그 위치를 return해준다. 백트래킹 문제 더 풀어보기... 프로그래머스supin2위클리 챌린지cpplevel2cpp Programers : [3차] n진수 게임 어려워 보였지만 생각보다 쉬웠음! 10진법이 넘어갈 경우 알파벳으로 치환해야하는데 number 배열을 이용하는 좋은 방법을 배움!... level2PROGRAMERSPROGRAMERS 프로그래머스 Level2 더 맵게 Python 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는... level2프로그래머스파이썬level2 [JavaScript][Programmers] 오픈 채팅방 들어오는 record의 글자에 따라 uid님이 ~~습니다.로 answer에 넣어놓고, 넣을 때 user객체의 value를 변경해준다. 그리고 마지막에 uid부분을 최종 value값으로 변경해준다. 다 풀고, 나갔습니다를 떠났습니다로 해놔서 10~20분정도 해맷다 ;; (틀린글자 찾기) 다른 사람들의 풀이에서 본 코드인데 let [command, uid, nick] = entry.split('... JavaScript프로그래머스알고리즘level2JavaScript Programers : N개의 최소공배수 (GCD / LCM) 모든 수를 대상으로 최소 공배수를 구하려면 각 약수들의 최대 차수들의 곱이 필요하다고 생각했음 그래서 모든 수의 약수를 구했고, 최대 값들만 map에 저장하여 계산했음 밑에 풀이가 더 간단하고 똑똑한 풀이! key point! : 앞에 2개씩 차례차례 최소 공배수를 구하면 결국 모든 수의 최소공배수를 구할 수 있음 최대공약수를 구하는 GCD와 최소공배수를 구하는 LCM을 만드는 함수는 외워두... level2PROGRAMERSPROGRAMERS [프로그래머스] 메뉴 리뉴얼 -Java 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로... level2프로그래머스알고리즘level2 Programers : 최댓값과 최솟값 (sstream) stringstream을 사용할 때 끝을 검사하기 위해 ss.eof()를 이용하면 된다 int 자료형으로 받을 때 음수도 잘 받아온다!... level2PROGRAMERSPROGRAMERS [Programmers][Java] H-Index 👉 문제 설명만 보고 코드를 짜니까 계속 틀린 답이 나왔었다. 위키피디아 볼 생각을 안 했었는데 들어가보니까 h-index를 구하는 방법이 잘 나와있었다. ' 인덱스 값보다 작아지기 시작하는 수가 h-index다 ' 라는 말에 꽂혀서 계속 틀렸었다.... Javalevel2Java Programers : 캐시 (find_if / transform) 캐시(cache) 공간을 vector<pair<string,int>> 자료형으로 만들었음 --> string은 지역 이름, int는 LRU 수행하기 위한 최근 들어간 idx값 LRU 수행 로직 (LRUpair은 다음에 빠져야 할 pair!) 1) cache에 해당 값이 없으며, cache가 가득차지 않았을 때 (cache에 삽입) : 지금 LRUpair인 문자열을 또 입력할 수 있으니, 같은... level2PROGRAMERSPROGRAMERS
[pro] 가장 큰 수 이 문제에서 핵심은 바로 앞 자리 수가 같은 문자열(수)들을 어떻게 배열하는가이다. 예를 들어 '6', '64', '600', '60'이 있을 경우, sorted() 함수에 넣고 오름차순 정렬해주면 ['6', '60', '600', '64']가 된다. 그러나 가장 큰 수를 만들어 주려면 정렬이 ['6', '64', '60', '600'] 이렇게 되어야 한다. 계속 앞자리 수부터 하나씩 뒤로 ... 다시풀문제코딩테스트정렬프로그래머스level2level2 Programers : 수식 최대화 -next_permutation() key point! : 연산자의 종류 개수에 따라 가능한 조합을 구하는 것이 관건 <algorithm> 에 next_permutation()을 이용하면 현재 조합에서 다음 순열을 구할 수 있음! tmp배열에 [0, 1, 2, 3, 4] 가 있을 때 [0,1,2,3,4] ~ [4,3,2,1,0] 까지 모든 조합으로 바꾸어 준다 반환형은 bool형이기 때문에 조건으로 사용! prev_permut... level2PROGRAMERSPROGRAMERS Programers : 조이스틱 (greedy) key point! 1) 조이스틱을 위/아래로 움직이는 것의 선택은 min을 이용해 해결 2) 조이스틱을 왼쪽/오른쪽 으로 움직이는 것의 선택은 먼저 'A'가 아닌 요소가 발견할 때 까지 찾기 --> 바꾼 name의 값을 'A'로 치환해주는 작업이 필요!... level2PROGRAMERSPROGRAMERS Programers : 주식 가격 (stack) 직관적인 풀이법 시간복잡도가 아슬아슬해 보인다 O(N^2) 보다 효율적이게 만드려다가 시간이 많이 소모되었다. (이럴 때에는 한번 해보는게 더 좋아보인다ㅠㅠ) 스택을 사용한 방법이 더 빠른 해결 방법! 값이 아닌 인덱스를 활용한 것이 key point!... level2PROGRAMERSPROGRAMERS [프로그래머스] 5주차_모음사전 문제 푼 날짜 : 2021-09-10 문제 링크 : 아래의 생각대로 코드를 구현하였다. 1~5자리로 만들 수 있는 모든 단어를 구해준다. (백트래킹) 구해진 단어들을 오름차순으로 정렬해준다. 찾고싶은 단어의 위치를 find함수를 통해 찾아주고, 그 위치를 return해준다. 백트래킹 문제 더 풀어보기... 프로그래머스supin2위클리 챌린지cpplevel2cpp Programers : [3차] n진수 게임 어려워 보였지만 생각보다 쉬웠음! 10진법이 넘어갈 경우 알파벳으로 치환해야하는데 number 배열을 이용하는 좋은 방법을 배움!... level2PROGRAMERSPROGRAMERS 프로그래머스 Level2 더 맵게 Python 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는... level2프로그래머스파이썬level2 [JavaScript][Programmers] 오픈 채팅방 들어오는 record의 글자에 따라 uid님이 ~~습니다.로 answer에 넣어놓고, 넣을 때 user객체의 value를 변경해준다. 그리고 마지막에 uid부분을 최종 value값으로 변경해준다. 다 풀고, 나갔습니다를 떠났습니다로 해놔서 10~20분정도 해맷다 ;; (틀린글자 찾기) 다른 사람들의 풀이에서 본 코드인데 let [command, uid, nick] = entry.split('... JavaScript프로그래머스알고리즘level2JavaScript Programers : N개의 최소공배수 (GCD / LCM) 모든 수를 대상으로 최소 공배수를 구하려면 각 약수들의 최대 차수들의 곱이 필요하다고 생각했음 그래서 모든 수의 약수를 구했고, 최대 값들만 map에 저장하여 계산했음 밑에 풀이가 더 간단하고 똑똑한 풀이! key point! : 앞에 2개씩 차례차례 최소 공배수를 구하면 결국 모든 수의 최소공배수를 구할 수 있음 최대공약수를 구하는 GCD와 최소공배수를 구하는 LCM을 만드는 함수는 외워두... level2PROGRAMERSPROGRAMERS [프로그래머스] 메뉴 리뉴얼 -Java 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로... level2프로그래머스알고리즘level2 Programers : 최댓값과 최솟값 (sstream) stringstream을 사용할 때 끝을 검사하기 위해 ss.eof()를 이용하면 된다 int 자료형으로 받을 때 음수도 잘 받아온다!... level2PROGRAMERSPROGRAMERS [Programmers][Java] H-Index 👉 문제 설명만 보고 코드를 짜니까 계속 틀린 답이 나왔었다. 위키피디아 볼 생각을 안 했었는데 들어가보니까 h-index를 구하는 방법이 잘 나와있었다. ' 인덱스 값보다 작아지기 시작하는 수가 h-index다 ' 라는 말에 꽂혀서 계속 틀렸었다.... Javalevel2Java Programers : 캐시 (find_if / transform) 캐시(cache) 공간을 vector<pair<string,int>> 자료형으로 만들었음 --> string은 지역 이름, int는 LRU 수행하기 위한 최근 들어간 idx값 LRU 수행 로직 (LRUpair은 다음에 빠져야 할 pair!) 1) cache에 해당 값이 없으며, cache가 가득차지 않았을 때 (cache에 삽입) : 지금 LRUpair인 문자열을 또 입력할 수 있으니, 같은... level2PROGRAMERSPROGRAMERS