일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- STL
- 삼성
- Sort
- 백트래킹
- 삼성SW테스트
- swea
- 코딩스킬
- find
- 레벨3
- 삼성SW역량테스트
- 시뮬레이션
- 코딩테스트
- priority_queue
- 레벨2
- dfs
- Set
- 문자열
- 완전탐색
- 모의SW역량테스트
- substr
- Map
- 이런게4문제
- BFS
- KAKAO
- dp
- 프로그래머스
- 백준
- 2018
- C++
- 브루트포스
- Today
- Total
목록1-4. 프로그래머스 (26)
-
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 | 프로그래머스 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수 programmers.co.kr 프로그래머스 완전탐색 문제다. DFS나 BFS, 비트마스킹, next_perm..
대학원때 논문쓰면서 H-index를 잘 몰랐는데 어쩌다 이 문제로 잘 알게됐다. https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index | 프로그래머스 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h가 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H- programmers..
완전 탐색 문제다. 접근법을 dfs로 백트래킹하여 찾아보려 했으나 '순차적인' 문자열만 만들 수 있어 풀이가 어려웠다. 길이가 1부터 전체 사용하는 문자열을 만들 수는 있지만, numbers로 "17"이 주어졌을 때 "1", "7", "17"은 만들 수 있지만 "71"은 만들 수 없다. 그래서 다른 방법을 생각해봤다. "주어진 숫자를 내림차순하고 각 숫자를 이루는 숫자가 몇 번 등장하는지 배열을 써서 2부터 주어진 숫자까지 루프를 돌면서 그 숫자에 등장하는 숫자들이 배열의 요소 이하로 등장하는지 검사하고, 이것이 소수이면 answer++하자!" 즉, 내림차순하면 최대 범위를 구하게 되는 것이고, 2이상의 값부터 검사를 해서 유효한 숫자이면 소수검사를 하는 것이 알고리즘이다. 만약 1이하의 값이 numbe..
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 | 프로그래머스 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 r programmers.co.kr 문자열을 정렬한 뒤, 뒤의 문자열에서 find로 앞의 문자열을 넣어 ..
https://programmers.co.kr/learn/courses/30/lessons/42841 코딩테스트 연습 - 숫자 야구 | 프로그래머스 [[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] 2 programmers.co.kr 완전 탐색 유형이라고는 하지만 for문 네 개면 풀리는 싱거운 문제다. 11번줄의 사항을 넣지 않으면 실패하는 테스트케이스가 존재하므로 꼭 넣어줘야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #include #include using namespace std; int solutio..
컨테이너를 이용해 의상 종류별로 몇 개의 요소가 있는지 확인한 뒤, 그 종류를 사용하지 않은 경우를 + 1한 것들을 모두 곱한다. 마지막으로 모두 사용하지 않은 경우는 없으므로 1을 뺀 것이 답이 된다. map 컨테이너에 key값이 아직 존재하지 않더라도 map[key]++;하면 자동으로 생성되는 것을 알았다. 순회방식은 iterator을 사용해 해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include #include #include using namespace std; int solution(vector clothes) { map m; for (int i = 0; isecond+1); } return temp-1; } http://colorscripter.co..
https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 programmers.co.kr 그리디 유형의 레벨 2 문제다. 맨 처음에 조건을 잘못 읽어서 맨 큰 숫자부터 하나씩 뽑아서 배치해 리턴하는 문제인 줄 알았으나, "주어진 문자열의 순서를 바꾸지 않고 k개 만큼 지워서 만들 수 있는 가장 큰 수를 리턴" 하는 문제였다. 이 문제를 풀기 위해서는 자릿수에 대한 개념이 필요하다. 가령, 8자리 number 문자열이 주어지고, k가 3으로 주어진 경우, 총 5자리의 숫자를 만들어야 한다. 문자열의 순서를 바꾸지 않고 맨 처음 자릿수를 만들 때는 첫 번째 숫자부터 끝에서 5번째 자리의 수까지 고려할 수 있다. 왜..