반응형

분류 전체보기 658

[G2] 백준 1167번 트리의 지름 C++ 트리, DFS, 깊이 우선 탐색

리뷰 https://www.acmicpc.net/problem/1167간선의 가중치가 있는 트리에서 두 노드의 거리가 가장 큰 길이를 구하는 문제 전역 변수n : 노드의 개수를 저장할 정수형 변수far_node : 첫 번째 dfs를 수행했을 때 가장 먼 거리를 가진 노드의 번호를 저장할 정수형 변수max_dist : 각 dfs마다 가장 먼 거리를 식별하기 위한 정수형 변수v : 깊이 우선 탐색을 할때 방문 처리를 확인하기 위한 정수형 배열, 크기는 100001로 초기화 한다.Edge : 노드의 자식과 간선의 가중치를 저장하기 위한 구조체edges : 각 노드의 인접리스트를 저장하기 위한 Edge타입 벡터, 크기는 100001로 초기화 한다. 함수1. dfsvoid dfs(int node, int dist..

[P2] 백준 15480번 LCA와 쿼리 C++ LCA, 최소 공통 조상, 트리

리뷰 https://www.acmicpc.net/problem/15480LCA의 심화 문제, 루트가 매번 바뀔때마다의 처리하는 아이디어에 배우게 된 문제였다. 전역 변수MAX_N : 정점의 최대 개수를 저장할 정수형 상수 변수LOG : DP에서 2의 N승으로 빠르게 탐색하기 위해 사용할 정수형 상수 변수n, m : 문제에서 주어진 정점의 개수 n, 쿼리의 개수 mdepth : 각 노드의 초기 깊이를 저장할 정수형 배열, 크기는 MAX_N으로 초기화parents : 각 노드의 부모 정보를 저장해 둔 정수형 배열, 크기는 MAX_N * LOG로 초기화lst : 각 정점간의 간선을 인접리스트로 저장할 정수형 벡터, 크기는 MAX_N으로 초기화 함수1. dfsvoid dfs(int node, int par, i..

[L3] 프로그래머스 네트워크 C++ 유니온 파인드

리뷰 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr연결된 컴퓨터끼리를 한개의 네트워크라 보고, 네트워크 집합의 개수를 구하는 문제  전역 변수nodes : 각 컴퓨터가 속한 네트워크의 번호를 저장하기 위한 정수형 배열, 크기는 200으로 초기화 함수1. Findint Find(int a) 노드가 속한 집합의 번호를 찾기 위한 함수매개변수로 탐색하고자 하는 노드의 번호를 a로 받아온다.nodes의 a인덱스가 a라면 a를 리턴해 주면 된다.아닐 경우 재귀를 통해 탐색을 하며 경로 압축을 시켜준다.경로 압축을 통해 Find가 실행될때마다 경로가 최신화 된다. 2...

[G5] 백준 1593번 문자 해독 C++ 슬라이딩 윈도우, 구현, 문자열

리뷰 https://www.acmicpc.net/problem/1593그리디한 접근 시 시간 초과가 났다. for문 한줄로 완탐을 끝낼 수 있는 방법을 많이 연구 해야할 것 같다. 전역 변수n, m, ans : 문자열 a의 길이 n, 문자열 b의 길이 m, 정답 저장용 변수 ansa, b : 입력으로 주어지는 첫번째 문자열 a, 두번째 문자열 bav : a문자열이 보유하고 있는 문자의 개수 정보 배열, 52크기로 세팅한다.bv : b문자열의 보유하고 있는 문자의 개수 정보 배열, 마찬가지로 52크기로 세팅 함수1. chkint chk() 현재 부분문자열이 일치하는지 여부를 체크하기 위한 함수av와 bv의 모든 인덱스에 저장된 값이 동일한지 체크해 주어야 한다.만약 다른 값을 만났다면 0을 리턴해 주면되고..

[L2] 프로그래머스 H-index C++ 완전 탐색, 브루트포스 알고리즘, DAT

리뷰처음엔 문제 이해가 잘 되지 않았는데 벡터 내에 존재하는 수가 n개 이상인 최대값을 구하는 문제로 받아들였다.  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  전역 변수v : 나온 숫자의 합계를 저장해 둘 정수형 배열, 크기는 10001로 세팅한다. 함수없음  문제풀이매개변수로 주어진 citations 벡터에 존재하는 값들을 for문을 통해 모두 탐색한다.v배열의 1 ~ 현재수까지의 인덱스를 모두 1씩 증가시켜준다.len을 citations벡터의 길이로 초기화 해주고, h_index변수를 0으로 초기화 해준다.len크기로 while문을 개행하고 현재 v..

[L2] 프로그래머스 C++ 가장 큰 수 정렬, 문자열

리뷰https://www.acmicpc.net/problem/16496백준에 존재하는 플레티넘 문제와 유사한 난이도인데 프로그래머스에선 L2난이도에 있다.  전역 변수없음  함수1. cmpbool cmp(string a, string b) 정렬을 할때 사용할 문자열을 비교하여 순서를 바꿀지 여부를 체크하는 함수numbers의 원소는 0 이상 1,000 이하이므로 매개변수로 주어진 문자열의 길이가 4가 넘을때까지 더해준다.만약 이미 4자릿수로 들어온 상태(1000)이라면 while문이 실행되지 않는다.두 문자열을 비교하여 a가 더 크다면 순서를 바꾸고, b가 더 크거나 같다면 바꾸지않는다. 문제풀이정수 벡터 numbers을 solution함수의 매개변수로 입력 받는다.문자열 벡터 answer을 초기화 해주..

[L4] 프로그래머스 MYSQL FrontEnd 개발자 찾기

테이블 정보1. SKILLCODESNAMETYPEUNIQUENULLABLENAMEVARCHAR(N)YNCATEGORYVARCHAR(N)NNCODEINTEGERYN  2. DEVELOPERSNAMETYPEUNIQUENULLABLEIDVARCHAR(N)YNFIRST_NAMEVARCHAR(N)NYLAST_NAMEVARCHAR(N)NYEMAILVARCHAR(N)YNSKILL_CODEINTEGERNN  예시 테이블1. SKILLCODESNAMECATEGORYCODEC++Back End4JavaScriptFront End16JavaBack End128PythonBack End256C#Back End1024ReactFront End2048VueFront End8192Node.jsBack End16384  2. DEV..

[L4] 프로그래머스 ORACLE 그룹별 조건에 맞는 식당 목록 출력하기

테이블 정보1. MEMBER_PROFILEColumn nameTypeNullableMEMBER_IDVARCHAR(100)FALSEMEMBER_NAMEVARCHAR(50)FALSETLNOVARCHAR(50)TRUEGENDERVARCHAR(1)TRUEDATE_OF_BIRTHDATETRUE  2. REST_REVIEW Column nameTypeNullableREVIEW_IDVARCHAR(10)FALSEREST_IDVARCHAR(10)TRUEMEMBER_IDVARCHAR(100)TRUEREVIEW_SCORENUMBERTRUEREVIEW_TEXTVARCHAR(1000)TRUEREVIEW_DATEDATETRUE  예시 테이블1. MEMBER_PROFILEMEMBER_IDMEMBER_NAMETLNOGENDERDAT..

[L3] 프로그래머스 ORACLE 카테고리 별 도서 판매량 집계하기

테이블 정보1. BOOK Column nameTypeNullableDescriptionBOOK_IDINTEGERFALSE도서 IDCATEGORYVARCHAR(N)FALSE카테고리 (경제, 인문, 소설, 생활, 기술)AUTHOR_IDINTEGERFALSE저자 IDPRICEINTEGERFALSE판매가 (원)PUBLISHED_DATEDATEFALSE출판일  2. BOOK_SALES Column nameTypeNullableDescriptionBOOK_IDINTEGERFALSE도서 IDSALES_DATEDATEFALSE판매일SALESINTEGERFALSE판매량   예시 테이블1. BOOK BOOK_IDCATEGORYAUTHOR_IDPRICEPUBLISHED_DATE1인문1100002020-01-012경제1900..

[L4] 프로그래머스 ORACLE 주문량이 많은 아이스크림들 조회하기

테이블 정보1. FIRST_HALF NAMETYPENULLABLESHIPMENT_IDINT(N)FALSEFLAVORVARCHAR(N)FALSETOTAL_ORDERINT(N)FALSE 2. JULY NAMETYPENULLABLESHIPMENT_IDINT(N)FALSEFLAVORVARCHAR(N)FALSETOTAL_ORDERINT(N)FALSE 예시 테이블1. FIRST_HALF SHIPMENT_IDFLAVORTOTAL_ORDER101chocolate3200102vanilla2800103mint_chocolate1700104caramel2600105white_chocolate3100106peach2450107watermelon2150108mango2900109strawberry3100110melon31501..

728x90
반응형