분류 전체보기
백준 9046 복호화 //map을 정렬하는방법, vector로 옮겨라, 문자열은 map필요X 배열만으로됨
https://www.acmicpc.net/problem/9046 9046번: 복호화 입력의 T(1 ≤ T ≤ 20)는 테스트 케이스로, 입력 제일 상단에 주어진다. 각각의 테스트 케이스는 한 줄마다 소문자와 공백으로 이루어진 영어 문장이 주어진다. 이 문장의 길이는 적어도 1이상이 www.acmicpc.net * map을 정렬하는방법, vector로 옮겨라 vector v(m.begin(), m.end()); 이후 sort 하면된다 sort(v.begin(), v.end(),cmp) * 문자 index는 map필요X 배열만으로됨 사실 이문제는 문자를 index로 쓰기때문에 a[문자-'a']++ 을 카운트로 사용하는것 만으로 해결된다. map을 쓸필요가 없었다.. - 숫자 to int [문자-'0'] -..
주문 검색 기능 개발 // 동적쿼리해결방법
* 동적쿼리문제 - 주문상태가 Order인것만 보여줘야함 // select * from * where ... - 주문상태가 기본이면 상관없이 다 보여줘야함 // select * from * where X class OrderRepository 해결1 : String 노가다 public List findAllByString(OrderSearch orderSearch) { //language=JPAQL String jpql = "select o From Order o join o.member m"; boolean isFirstCondition = true; //주문 상태 검색 if (orderSearch.getOrderStatus() != null) { if (isFirstCondition) { jpql +..
프로그래머스 이모티콘할인행사 // 중복순열, vector<pair<int,int>>정렬방법
https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 중복순열 result에 idx가 저장된다. result[i]를 가지고 실제데이터에 접근하면된다. ex) sale[]={10,20,30,40} result={0,1} saleV={10,20} void permRe(){ if(result.size()==N){ //Logic for(auto i : result){ coutv2.second; } return v1.first>v2.first; } #i..
순열 vs 중복순열 vs 조합 vs 중복조합 종결
* 순열 (for i=0부터) void perm() { if (result.size() == 4) {//4개뽑 for (auto i : result) { cout
백준 9934 완전이진트리 // 탐색결과를 트리로원복
9934번: 완전 이진 트리 (acmicpc.net) 9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net * 탐색결과를 트리로원복 1 6 4 3 5 2 7 mid를 푸쉬, 재귀적으로 mid를 푸쉬하면된다. 3 6, 2 ... 종료조건국룰 : start>end ----> return; 종료조건 : start==end -> push(mid==start==end), return #include using namespace std; int _end,n; vector ret[14]; int a[1..
프로그래머스 개인정보 수집 유효기간 // c++ split, 단위를통일하라, 함수화하고 cout으로 단위테스트하라.
*c++ split vector split(string input, string deli){ long long pos=0; vector ret; string token=""; while((pos=input.find(deli))!=string::npos){ token=input.substr(0,pos); ret.push_back(token); input.erase(0,pos+deli.size()); } ret.push_back(input); return ret; } * 시간, 날짜문제는 제일적은단위로 단위를통일하라 //2022, 05, 19 -> 99999일 //test 완료. long long todayToDay(vector v){ long long ret=0; ret+=stoi(v[0])*336; re..
C++ split구현, 사용법
문제 : c++ 에는 split함수가없다 해결 : 직접구현 주의1 : (pos=str.find(deli))에서 괄호를 싸줘야함. 주의 2: 마지막에 ret.push(input) => 마지막 남은 문자배열처리 * 로직 192.168.0.1 pos='.'의 idx인 3 token=192 (0부터, 3칸) token넣기 지우기(192.) (0부터, 4칸) #include using namespace std; vector split(string input, string deli) { long long pos=0; vector ret; string token = ""; while ((pos=input.find(deli)) != string::npos) { token = input.substr(0, pos); re..
프로그래머스 거리두기체크하기 // 2차원벡터다루기 형식, 종이에그려보며 규칙세우기 , 2차원배열 초기화방법
https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 2차원벡터다루기 형식 vector 스킵 거리가 2이하 and 거기가 사람임 -> false for(4방탐색) 범위쳌 방문함 ->스킵 next==x -> 스킵 방문처리 큐푸쉬 #include #include #include using namespace std; int dx[]={1,0,-1,0}; int dy[]={0,1,0,-1}; struct Point{ int y; int x; int di..