본문 바로가기

전체 글129

[ 프로그래머스 / 진법 ] 다음 큰 숫자 1. 문제 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 2. 소스코드 - bitset을 쓰면 정말 간단히 풀리는 문제. - &연산을 이용하는 방법도 있다. 좀 더 깊게 공부하고 싶으면 &연산자와 쉬프트 연산을 해보는 게 좋을 것 같다. 소스코드 - bitset #include #include #include using namespace std; int solution(int n) { int num = bitset(n).count(); int next = n + 1; whil.. 2020. 6. 30.
[ 프로그래머스 / 우선순위큐 ] 라면공장 1. 문제 코딩테스트 연습 - 라면공장 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니�� programmers.co.kr 2. 소스코드 - 개인적으로 불호인 문제. - 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량(supplies), 라고 문제에 정의되어 있는데, 정작 풀이는 해당 날짜 이후 언제든지 그 만큼을 공급받을 수 있다. - 그러니까 는 의미랑, 는 의미는 천지 차이인데 문제는 이를 애매하게 서술해놓았다. - 후자의 의미로 풀어야 AC를 받는다. 소스코드 #include #include #include using namespace std.. 2020. 6. 30.
[ 프로그래머스 / 완전탐색 ] 카펫 1. 문제 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 2. 소스코드 - w를 고정, h를 w까지 늘려가며 비교했다. - 연립방정식을 세워 풀면, while 문 하나로도 가능하다. 소스코드 #include #include #include using namespace std; vector solution(int brown, int yellow) { vector answer; int h=3, w=3; long long int temp_brown = 0; while(true){ h = 3; while(h 2020. 6. 30.
[ 프로그래머스 / Map ] 위장 1. 문제 코딩테스트 연습 - 위장 programmers.co.kr 2. 소스코드 - 옷의 카테고리별로 map을 만든 뒤, 카테고리별 갯수를 저장 - 가능한 경우의 수는, 해당 카테고리별 옷의 개수 를 전부 곱해주고 - 1이다. - -1을 하는 이유는 아무것도 안입는 경우의 수이기 때문. 소스코드 #include #include #include #include using namespace std; int solution(vector clothes) { unordered_map map; int answer = 1; vector ctg; for(auto cur : clothes){ if(map[cur[1]] == 0) ctg.push_back(cur[1]); map[cur[1]]++; } for(string.. 2020. 6. 30.