기록하지 않았다면 잃어버릴 시간들
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
블로그 내 검색

기록하지 않았다면 잃어버릴 시간들

새로운 것을 배우는게 즐거운 개발자입니다.

  • 알고리즘/프로그래머스

    2023 카카오 블라인드 코딩테스트 1번 개인정보 수집 유효기간 / C++

    2023. 1. 8.

    by. 내이름은 킹햄찌

    https://school.programmers.co.kr/learn/courses/30/lessons/150370

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

    2023 카카오 블라인드 코딩테스트 1번 개인정보 수집 유효기간 문제

     

    아이디어

    오늘 날짜, 개인정보 수집일자, 약관에따른 유효기간을 모두 day단위로 convert하여 파기해야할 개인정보의 번호를 반환

    하루가 28일이라는 것 주의

     

    #include <string>
    #include <vector>
    #include <unordered_map>
    #include <sstream>
    #include <iostream>
    using namespace std;
    
    long long convertDay(string s) {
    	vector<long long> v;
    	long long num;
    	for (int i = 0; i < s.size(); i++) {
    		if (s[i] == '.')
    			s[i] = ' ';
    	}
    	stringstream str(s);
    	while (str >> num) {
    		v.push_back(num);
    	}
    	return ((v[0] * 336) + (v[1] * 28) + (v[2]));
    	//365 * 28
    }
    
    vector<int> solution(string today, vector<string> terms, vector<string> privacies) {
    	vector<int> answer;
    	//convert today
    	long long Today = convertDay(today);
    	//convert tems
    	unordered_map<char, long long> map;
    	for (auto &term : terms) {
    		long long num;
    		char token;
    		for (stringstream str(term); str >> token >> num;) {
    			map[token] = (num * 28);
    		}
    	}
    	//convert privacies
    	int pos = 0;
    	for (auto &privacie : privacies) {
    		pos++;
    		long long temp = convertDay(privacie);
    		char trm = privacie.back();
    		temp += map[trm];
    		if (temp > Today) continue;
    		answer.push_back(pos);
    
    	}
    
    	return answer;
    }

    '알고리즘 > 프로그래머스' 카테고리의 다른 글

    2023 카카오 블라인드 코딩테스트 3번 이모티콘 할인행사 / C++  (0) 2023.01.08
    2023 카카오 블라인드 코딩테스트 2번 택배 배달과 수거하기 / C++  (0) 2023.01.08
    Programers 최고의 집합 / C++  (0) 2022.12.04
    Programers 최고의 집합 / C++  (0) 2022.12.04
    Programers 숫자의 표현 / C++  (0) 2022.12.03

    댓글

    관련글

    • 2023 카카오 블라인드 코딩테스트 3번 이모티콘 할인행사 / C++ 2023.01.08
    • 2023 카카오 블라인드 코딩테스트 2번 택배 배달과 수거하기 / C++ 2023.01.08
    • Programers 최고의 집합 / C++ 2022.12.04
    • Programers 최고의 집합 / C++ 2022.12.04
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
내이름은 킹햄찌

티스토리툴바