반응형

programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>
#include <unordered_map>

using namespace std;

int solution(vector<vector<string>> clothes) {
	int answer = 0;

	std::unordered_map<string, int> map;
	for (const auto& cloth : clothes) 
	{
		map[cloth[1]]++;
	}

	answer = 1; // 곱누적을 위해 1로 초기화

	for (const auto& item : map) 
	{
		answer *= (item.second + 1);
	}

	return answer-1;
}

미착용까지 포함하여 각 의상종류별 의상구성 개수에 +1을 하고 모두 곱한다.

1을 빼는 이유는 모두 미착용인 경우는 제외한다 ( 의상을 반드시 1개는 착용한다는 제약조건이 있기 때문에 )

 

 

 

 

 

반응형
반응형

programmers.co.kr/learn/courses/30/lessons/42577

 

코딩테스트 연습 - 전화번호 목록

전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조

programmers.co.kr

string::find 는 실패시 std::string::npos 를 리턴

찾은 경우는 position을 리턴한다.

따라서 0이라면 prefix를 찾은것

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool solution(vector<string> phone_book) {
	bool answer = true;

	std::sort(phone_book.begin(), phone_book.end());

	for (int i=0;i<phone_book.size()-1;i++)
	{
		auto keyword = phone_book[i];
		auto next = phone_book[i+1];

		if (keyword == next.substr(0, keyword.length()))
		{
			return false;
		}
	}

	return answer;
}

- 결국 sort 를 하게 되면 바로 다음 원소와만 비교하면된다

- 다음 원소의 접두어가 아니라면 그 뒤에 원소들은 비교할 필요도 없다 ( 이미 정렬되어 있으니..)

 


 

다른 사람 풀이

 

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

bool solution(vector<string> phone_book) {
    bool answer = true;

    unordered_map<string, int> hash_map;
    for(int i = 0; i < phone_book.size(); i++)
        hash_map[phone_book[i]] = 1;

    for(int i = 0; i < phone_book.size(); i++) {
        string phone_number = "";
        for(int j = 0; j < phone_book[i].size(); j++) {
            phone_number += phone_book[i][j];
            if(hash_map[phone_number] && phone_number != phone_book[i])
                answer = false;
        }
    }

    return answer;
}

 

문제의도가 잘 반영된듯하다.

unodered_map<string, int> hash_map;

해시맵에 플래그를 사용하는 방식

 

반응형
반응형

1. 점화식

 

1, 2, 3으로 시작 가능하므로 3가지 case가 있으며

1로 시작하는 경우는 dp[i-1]

2로 시작하는 경우는 dp[i-2]

3으로 시작하는 경우는 dp[i-3]

따라서, dp[i] = dp[i-3] + dp[i-2] + dp[i-1] 이 됨

 

2. 코드

#include <stdio.h>

int main()
{
    int t;
    scanf("%d", &t);

    for (int i = 0; i < t; i++) 
    {
        int n;
        scanf("%d", &n);
        int dp[11] = { 0,1,2,4 };
        for (int i = 4; i <= n; i++)
            dp[i] = dp[i - 3] + dp[i - 2] + dp[i - 1];
        printf("%d\n", dp[n]);
    }
    return 0;
}

 

 

반응형
반응형

undocmented 된 내용

 

https://docs.microsoft.com/ko-kr/archive/blogs/tip_of_the_day/tip-of-the-day-cbs-servicing-states-chart-refresher

 

Tip of the Day: CBS Servicing States Chart - Refresher

Tip of the Day: CBS Servicing States Chart - Refresher 10/12/2015 2 minutes to read In this article --> Ever find yourself lost in the CBS log? It’s likely that if you’ve opened the CBS.log in Windows\Logs, you have. Don’t know what the value in the regist

docs.microsoft.com

windows server 2008 sp2 에서 표기방식은 0~7사용

 

windows server 2008 r2에선 0x10~0x70 등을 사용

 

겹치는 값은 없으며, state의 확장성을 위해 특정 버전부터 표기방식을 바꾼것으로보임.

 

package 설치여부 버그 픽스 중 발견

표기방식이 바뀐것, 동일 os (2008)에서도 sp2와 r2를 경계로 다른것이 특이점

반응형

+ Recent posts