본문 바로가기

전체 글18

[프로그래머스] 튜플 C++ 문제 이해 문자열이 주어지면 문자열 안에서 튜플을 가려내면 되는 문제. 아이디어 구상 우선 주어진 값을 그대로 사용하기보단 1번 가공해서 사용하는 게 편할 거 같아서 1차적으로 숫자와 , 만 리스트에 담아서 저장했고 그다음 1차원 리스트에 담긴 값을 길이 기준으로 오름차순 정렬했다. 그다음 문자열만큼 반복하면서 문자 -> 숫자로 형태를 변환시키면서 원래 숫자를 만들고 vis로 해당 숫자가 사용 됐는지의 여부를 판별하면서 결과 리스트에 추가했다.(리스트 = 벡터와 같은 의미로 단어를 사용했습니다.) 코드 #include #include #include #include using namespace std; #define MX 100005 int vis[MX]; vector v; int chk(string a.. 2023. 8. 31.
[BOJ] 2573 빙산 C++ 문제 이해 n x m의 배열이 주어지고 한 덩이의 빙산으로 시작해서 두 덩이 이상으로 분리되는 최초의 시간을 구하는 문제. 단, 전부 다 녹을 때까지 두 덩이 이상으로 분리되지 않으면 0 출력. 아이디어 구상 2중 반복문 안에서 방문하지 않은 경우 bfs를 시작해서 빙산의 상하좌우를 탐색하여 0이면 2번 배열에 현 위치를 체크 해두고 양수라면 1번 배열에 방문체크를 하고 큐에 넣어준다. bfs 횟수는 곧 빙산의 덩어리의 개수를 의미한다. 코드 #include #include using namespace std; #define MX 305 int n, m, ice, sw; int a[MX][MX], vis[MX][MX], vis2[MX][MX]; int dx[] = { 0,0,1,-1 }; int dy[].. 2023. 8. 25.