[C++] SWEA 1244번: 최대상금

2022. 12. 16. 00:11·problem solving/SWEA

🔗 문제

SW Expert Academy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

🖍 풀이

완전 탐색으로 돌려줬다.

완전 탐색 문제를 풀 때는 조건문으로 필요없는 반복을 줄이는 것이 중요하다.

 

for문으로 교환해줄 때 i, j의 조건을 보자.

j는 i보다 더 큰 수로만 증가하여 중복되는 교환횟수를 줄였다.

 

visited[ 교환 후 숫자 ] [교환횟수] 로 중복 교환 횟수를 줄여주었다.

 

💾  소스

#include <iostream>
#include <string>
#include <memory.h> // memset
#include <algorithm> // swap

#define MAX 1000000
 
std::string answer;
bool visited[MAX][11]; // [숫자][교환횟수]
 
void solve(std::string& s, int depth)
{
    if (depth == 0)
    {
        if (s > answer)
            answer = s;
        return;
    }
 
    for (int i = 0; i < s.length()-1; i++)
    {
        for (int j = i+1; j < s.length(); j++)
        {
            std::swap(s[i], s[j]);
            if(!visited[std::stoi(s)][depth])
            {
                visited[std::stoi(s)][depth] = true;
                solve(s, depth-1);
            }
            std::swap(s[i], s[j]);
        }
    }
}
 
 
int main()
{
    int T = 0; std::cin >> T;
    for (int tc=1; tc<=T; ++tc)
    {
        answer = "";
	    	std::string str = "";
        memset(visited, false, sizeof(visited));

        int cnt;
        std::cin >> str >> cnt;
        
        solve(str, cnt);
        
        std::cout << '#' << tc << ' ' << answer << '\\n';
    }
 
    return 0;
}
저작자표시 비영리 변경금지
'problem solving/SWEA' 카테고리의 다른 글
  • [C++] SWEA 1249번: 보급로
  • [C++] SWEA 1257번: K번째 문자열 (set 활용)
  • [C++] SWEA 1234번: 비밀번호
  • [C++] SWEA 1233번: 사칙연산 유효성 검사
u1qns
u1qns
그냥 알고리즘 풀이만 올리려고 했는데, 정보 찾다보니까 너무 답답해서 이것저것 쓰다보니 커졌어요.
  • u1qns
    블로그
    u1qns
  • 전체
    오늘
    어제
    • 분류 전체보기 (170)
      • 회고 (1)
      • programming (17)
        • 개념 정리 (6)
        • CI CD (1)
        • 트러블 슈팅 (0)
        • 환경설정 및 팁 (7)
      • problem solving (152)
        • 개념 정리 (3)
        • 백준 (126)
        • SWEA (15)
        • 프로그래머스 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    되추적
    POW
    투포인터
    C++
    cmath
    완전탐색
    SWEA
    cpp
    그리디
    SSAFY
    구현
    미해결
    DP
    SSAFY수료식
    BFS
    boj
    HELLOSSAFY
    DFS
    삼성청년SW아카데미
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
u1qns
[C++] SWEA 1244번: 최대상금
상단으로

티스토리툴바