목록전체 글 (760)
Mini

https://school.programmers.co.kr/learn/courses/15009/lessons/121690?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* 풀이최단거리는 bfs상태 : { y, x, 점프사용여부, dist }단순한 bfs는 vis를 방문여부용도 && 거리용도로 사용, but 복잡한경우 dist라는 상태를 따로 분리하는게 좋겠다.이문제는 앞쪽에서 방문여부체크, 종료조건을 체크하는 bfs가 유리.bfs는 먼저 도착한게 최단거리다.3차원 bfs 이해하기세계를 2개로 나눠서 그려보자.세계간 이동가능 여부를 그려보자.공통) +-1로 이동가능안쓴경우 ) +-2..

https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr * 시도문제를 예시로 이해하려고 시도 -> 실패시키는대로만 하면 되는문제..알고리즘이 주어진것을 코드로 옮기는 능력을 보고싶은듯 * 풀이분리불가 && 균형잡힌 문자열 찾는방법?substr 사용법잘못 : substr( a, b) 가 a부터 b까지 Xa부터 b개를 가져오는것임substr(a) // a부터 끝까지substr(a,3) // a부터 3개앞뒤를 자르려면?u = substr(1, u.size()-2)괄호 방향을 뒤집어서 뒤에 붙이기rever..

https://school.programmers.co.kr/learn/courses/30/lessons/12979?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이N이 2억이기때문에, 완탐, dp는 불가능 합니다.그리디, 수학적으로 풀어야 합니다.prev를 마지막의 커버된 아파트의 위치로 정의합니다.w가 주어지면, 2*w+1의 범위는 커버가 가능한것은 추론했음.(station - w -1 ) -prev로 a구간의 길이를 구함구간을 하나하나 보지않고 숫자 뺄셈연산으로 한번에 처리한것이 키포인트.a구간을 2*w+1로 나누고, 올림하면 필요한 기지국의 갯수가 됨. 엣지케이스엣지케이스..

https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr시도1lock 의 y,x에 좌물쇠를 대보면서 전부 1인지 체크하는 방법오답포인트 : 자물쇠, 열쇠 둘다 (0,0)에서 시작한다고 가정반례 : 열쇠가 좌물쇠 좌측위에 있는경우도 가능함.#include using namespace std;vector> key, loc, origin;vector> rot(vector> origin){ vector> ret(24, vector(24, 0)); // int ret[24][24]; for(i..

들어가며안녕하세요. 백엔드 개발자 유동훈입니다. 쇼핑몰 프로젝트를 고도화 하면서 여러 클라이언트에서 접근시 재고감소 로직이 의도대로 작동하지 않는 문제를 발견하고 해결한 과정을 공유하고자 합니다.문제상황문제 상황을 재현하기 위한 테스트코드는 다음과 같습니다. @Test @DisplayName("20명이 5개씩 주문하면 재고가 100이 줄어야 한다.") public void stock_decrease_concurrency() throws Exception { // given int stockQuantity = 100; TestDataDto testData = testDataService.createTestData(stockQuantity); ..

https://school.programmers.co.kr/learn/courses/30/lessons/60062 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* 풀이n이 작음 (15) -> 비트마스킹? -> 내부에서 순서도 중요하네? -> 그냥 순열?idx가 사람의수이면서 && dist의 index 역할j는 weakArr(weak를 시작점에따라 바꾼것) 의 index임dist를 앞부터 weakArr에 집어 넣어보는 완전탐색 방법.원형배열 구현 , 거리가 중요한경우결론 : startIdx기준으로 뒤넣고, 앞넣을때 배열 size만큼 더해주면된다.vector make(int startIdx, vector&..

https://www.acmicpc.net/problem/12891 * 풀이n = 1백만O(n) 풀이 필요슬라이딩 윈도우==구간(m)을 유지갱신 하면서map에 저장각 구간마다 적은게있는지 검사#includeusing namespace std; typedef long long ll;ll n,m,ret;string str;vector v;map mp;int a,b,c,d;int check() { if(mp['A'] >n>>m>>str; cin>>a>>b>>c>>d; int s=0; int e=0; //안포함 for(int i=0;i

https://www.acmicpc.net/problem/2018* 시도1누적합만들고이진탐색으로 찾으면 될듯?메모리초과 (1천만배열)시간초과 (n log 1천만 ) == 천만 * 23 -> 23억o(N)에 풀어야한다. * 풀이이문제는 메모리제한이 32MB -> 1천만 배열불가능s,e가 index인 동시에, 값의 역할도 해야함!엣지케이스 확인n=1 ) break문에 걸려서 잘처리됨마지막 부분 해보기break에 걸려서 자기자신이 카운팅이 안됨 -> ret=1 로 시작#includeusing namespace std; typedef long long ll;ll n,ret;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>..