기록하지 않았다면 잃어버릴 시간들
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)
블로그 내 검색

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

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

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

    Programers 큰 수 만들기

    2022. 7. 26.

    by. 내이름은 킹햄찌

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

     

    프로그래머스

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

    programmers.co.kr

    프로그래머스 큰 수 만들기 문제입니다.

     

    아이디어

    Greedy문제입니다. 큰 수를 만들기 위한 전략을 로직으로 녹여내는 것이 중요한데, 본인은 앞에서 부터 가장 큰 수를 찾고 작은 수들은 걸러내는 방식을 사용했습니다.

    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    string solution(string number, int k) {
    	int cnt = k;
    	int maxPos = 0;
    	int start = 0;
    	string answer = "";
    	while (cnt>0) {
    		int frontMax = 0;
    		int cnt2 = cnt;
    		if (answer.length() + cnt == number.length()) break;
    		//앞에서 가장 큰수를 찾는다
    		for (int i = start; cnt2>=0; cnt2--,i++) {
    			if (frontMax<int(number[i])) {
    				frontMax = int(number[i]);
    				maxPos = i;
    			}			
    		}
    		cnt -= (maxPos - start);
    		answer += number[maxPos];
    		if (cnt == 0 && (number.length() - answer.length() != k)) answer += number.substr(maxPos + 1);
    		start = maxPos+1;
    	}
    	return answer;
    }

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

    2022 카카오 여름인턴쉽 코딩테스트 3번 코딩 테스트 공부  (0) 2022.09.04
    Programers 124나라의 숫자  (0) 2022.07.26
    Programsers 구명보트  (0) 2022.07.26
    Programers 다음 큰 숫자  (0) 2022.07.26
    Programers 다리를 지나는 트럭  (0) 2022.07.26

    댓글

    관련글

    • 2022 카카오 여름인턴쉽 코딩테스트 3번 코딩 테스트 공부 2022.09.04
    • Programers 124나라의 숫자 2022.07.26
    • Programsers 구명보트 2022.07.26
    • Programers 다음 큰 숫자 2022.07.26
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

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

티스토리툴바