본문 바로가기

알고리즘 문제풀이202

[프로그래머스] #134 최소직사각형 (Swift) https://programmers.co.kr/learn/courses/30/lessons/86491?language=swift 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 구현 명함의 가로와 세로 길이를 담은 [w,h] 배열이 명함의 갯수만큼 주어진다. (2차원배열, [[w,h]]) 명함들을 적절히 90도 회전하여 (w,h)->(h,w) 모든 명함을 담을 수 있는 지갑의 최소한의 넓이구하는 문제 접근방법 처음에는 모든 명함들이 회전한경우,회전하지않은경우 의 지갑의 최소 넓이를 모두 구해야 하나 싶었다. (브.. 2022. 2. 11.
[프로그래머스] #133 K번째수 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42748?language=swift 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 정렬 자연수 (1~100) 배열이 주어지고 command : [시작점, 끝점, K]가 배열로 주어진다. 자연수 배열을 시작점과 끝점 범위에 맞게 자른뒤 정렬하고, 그 중 K번째수를 구한다 각 command의 K번째수를 담은 배열을 반환하는 문제 접근방법(접근방법1) command를 for문으로 순회하며 subArray를 구하고, 정렬한 뒤, K번째 인덱스를 result 배열에 append함 -> 최종적.. 2022. 2. 10.
[프로그래머스] #132 체육복 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42862?language=swift 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 탐욕법(Greedy) 체육복을 도난 당한 친구들에게 여분이 있는 학생들이 양옆의 친구에게 빌려줘서 체육복이 없는 학생 인원을 최소로 줄여서 체육복이 있는 학생수를 출력하는 문제 접근방법 우선 본인이 여벌의 옷을 갖고 있는데 한개를 분실한 친구 번호는 양배열에서 모두 제거한다. (filter사용) 체육복이 있는 학생 번호를 담은 reser.. 2022. 2. 10.
[프로그래머스] #131 모의고사 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 완전탐색 학생 3명의 반복되는 답이 문제에 주어지고, 정답을 담을 배열이 인자로 주어지면 학생들 중 가장 높은 점수를 획득한 학생들을 결과로 반환하는 문제 접근방법 학생들의 답을 담은 배열과 정답 배열을 순회하면서 일일이 비교하여 학생들 각각의 점수를 구한 뒤 최고점과 점수가 같은 학생들을 결과 배열에 담아, 오름차순으로 정렬하여 반환하는 식으로 풀이했다. 처음.. 2022. 2. 8.
[프로그래머스] #130 메뉴 리뉴얼 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 2021 KAKAO BLIND RECRUITMENT : 메뉴 리뉴얼 손님이 주문한 단품메뉴의 목록이 아래와 같이 score 배열로 주어지고 1번 손님 A, B, C, F, G 2번 손님 A, C 3번 손님 C, D, E 4번 손님 A, C, D, E 5번 손님 B, C, F, G 6번 손님 A, C, D, E, H 이 중 두 개 이상의 메뉴를 조합하여 코스요리를 .. 2021. 12. 8.
[백준 14500] #129 : 테트로미노 (C++) https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net C++ 구현, 브루트포스 사진에 보이는 5개의 테트로미노를 회전, 대칭 시켜서 점수가 적혀있는 판에 놓았을 때 테트로미노가 놓여진 칸들의 점수의 합의 최대값을 구하는 문제이다. 접근방법 브루트포스로 풀었다. 나올 수 있는 모든 도형의 모양을 구하고 (0,0) 기준으로 좌표를 구한다음 모든 도형에 대해 일일이 어디에 두면 가장 큰 값이 나오고, 그 중에 어떤 도형이 가장 큰 값을 내는지 찾았다. 도.. 2021. 10. 11.
[C++] C++에서 문자열 split하기 (istringstream, getline) istringstream과 getline사용 #include #include #include using namespace std; int main(){ //나눌 문자열 string str = "C is quirky, flawed, and an enormous success"; //나눈 문자열들을 담을 변수 string token; //방법1 : istringstream 사용 //문자열을 ' '(공백 1칸)으로 구분하기 istringstream iss(str); //str을 입력받은 input string stream //getline은 구분자로 char 즉 하나의 문자 밖에 못받음 while(getline(iss, token, ' ')) cout 2021. 10. 6.
[백준 9660] 알고리즘 128일차 : 돌게임 6 https://www.acmicpc.net/problem/9660 9660번: 돌 게임 6 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www.acmicpc.net C++ 게임이론 돌게임 3에서 N의 범위만 (1 ≤ N ≤ 1,000,000,000,000) 이렇게 커진 문제 돌게임3를 DP로 풀고 돌게임6를 규칙을 찾아푸는걸 의도한것 같지만 돌게임3를 이미 규칙을 찾아 풀어서 이것도 똑같이 풀었다. 1 -> SK 2 -> CY 3 -> SK 4 -> SK 5 -> SK 6 -> SK 7 -> CY 이 반복됨 소스코드 #include using namespace std; int main(){ //input long long N; cin >> N; //process & out.. 2021. 8. 31.
[백준 2467] 알고리즘 NCT???일차 : 용액 https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net C++ 투포인터 산성도가 오름차순으로 정렬된 배열에서 두 용액의 산성도를 합했을때 가장 0에 가까운 두 용액을 찾는 문제 2470번 문제와 아주 유사하지만 정렬된 배열이라는 점이 다르다. 접근방법 양 끝 점에서 시작하여 두 수의 합이 0보다 크면 현재 값보다 더 작아져야 하므로 end 점을 1감소시키고 두 수의 합이 0보다 작으면 현재 값보다 더 커져야 하므로 start점을 1증가시킨다. 소.. 2021. 8. 30.