본문 바로가기

반응형

알고리즘 문제 풀이

(15)
[BOJ] 6603. 로또 로또클릭시 이동합니다. 어떻게 풀까? 조합 문제입니다! 심지어 숫자들도 오름차순으로 들어오기 때문에, 조합 짜는 코드만 잘 짜주시면 됩니다! 참고로, 최대 길이가 13밖에 되지 않으니, 선택했다는 것을 비트로 이용하여 나타낼 수 있습니다! 재귀 함수로 순열을 짜는 방법은 다음과 같습니다. 1. 해당 배열을 선택한다! - 이 경우에는 해당 배열을 선택했다는 select check를 해주고 다음 인덱스를 확인합니다.2. 해당 배열을 선택하지 않는다! - 이 경우에는 아무런 처리를 하지 않고 다음 인덱스를 확인합니다! 이렇게 하면, 마지막에 r이 0이 되거나, n이 r과 같아지는 경우에는 visit을 적절하게 1로 만들면서 visit을 이용하여 선택된 숫자들을 출력하면 됩니다. 코드 12345678910111..
[SW Expert Academy] 오랜만에 하는 코드 배틀! 그렇다고 합니다. 휴가는 필요없습니다!코드 배틀이야 말로 진정한 피서지인 것을! 뇌가 서늘해지는 그 곳 코드배틀에서 멘붕을 겪어봅시다! SW Expert Academy의 문제들은 외부 공개가 금지되어있기 때문에 링크로 대체합니다!! 5215. 햄버거 다이어트 어떻게 풀까? 모든 경우의 수를 확인해서 최고의 칼로리를 구하는 문제입니다!이전에 bit를 이용해서 모든 부분집합을 구하는 경우를 올려드린적이 있습니다! 해당 문제는 이를 이용해서 햄버거와 칼로리를 모두 계산해보면 해결할 수 있습니다! 1. 모든 부분 집합을 만들어본다.2. 칼로리가 주어진 조건보다 넘으면 무시!, 같거나 작으면 최대 만족도 갱신! 비트를 이용하여 부분집합을 만드는 법을 알고싶으시면 아래 링크를 클릭하세용! http://sangdo9..
[SW Expert Academy] 코드 배틀!! 처음으로 해보는 1등! 허걱스 4751. 다솔이의 다이아몬드 장식 SW Expert Academy는 문제에 저작권이 걸려있기 때문에 링크로 대신하겠습니다! 문제를 푸는 방법은 생각보다 간단합니다!글자가 있는 위치를 기준으로 #을 찍어주는 함수를 만들면 됩니다! 이렇게 말이죠! 코드 12345678910111213141516171819202122232425262728293031323334353637383940#pragma once#include#include char str[51];char res[5][502]; void draw(int r, int c) { res[r - 2][c] = res[r - 1][c - 1] = res[r - 1][c + 1] = res[r][c - 2] = res[r][c + 2] = res[r + 1][c..
[SW Expert Academy] 길찾기 길찾기 SW Expert Academy는 문제 복제가 금지되어 있기 때문에 링크로 대체하겠습니다. 어떻게 풀까? 대표적인 DFS / BFS 문제입니다.저 같은 경우는 그냥 시작점에서 큐를 돌려서 BFS를 이용해서 풀었습니다! 0번 노드에서 시작해서 0번 노드에서 이어지는 노드들을 모두 큐에 넣은 후에 방문 했다는 것을 체크해 둡니다.만약, 99번 노드가 나온다면 바로 연결되어있다는 것으로 끝내주면 됩니다.하지만 큐가 빌 때까지 99번 노드를 찾을 수 없다면, 시작 노드에서 끝 노드로 갈 수 없다는 것이 될 것입니다! 문제를 하나 풀어보겠습니다. 큐에 시작점인 0을 넣고, 0번을 방문 했다고 체크 합니다. 큐의 가장 위에 있는 0번 노드가 시작 노드가 됩니다.0번 노드가 가리키는 1번과 2번 노드를 큐에 ..
[SW Expert Academy] 코드 배틀! 이번주 화요일에도 코드 배틀이 있었습니다![Battle 23] 장마 기간에는 쾌적한 실내에서 코드 배틀!이었군요..역시! 비 오는날에도 쾌적하게 즐길 수 있는 갓갓 알고리즘!!! 오늘도 한번 풀어보겠습니다! SW Expert Academy의 문제는 저작권이 있기 때문에 링크로 대체하겠습니다!문제 제목을 클릭하면 해당 문제로 이동합니다으아 4615. 재미있는 오셀로 게임 큰 알고리즘이 필요 없는 간단한 구현 문제입니다!돌이 놓여진 좌표에서 대각선, 위, 아래, 왼쪽, 오른쪽 팔방향에서 돌이 어떻게 바뀌는지만 구현하면 됩니다! 돌이 놓여지다가 같은색 돌을 만나게되면, 그 사이에 있는 돌들을 자신의 돌로 바꾸고 바꾼 갯수만큼 해당 돌의 수를 올려주면 됩니다!또한, 돌을 놓았기 때문에 놓아진 돌의 수 1개도 함..
[알고스팟] 최장 증가 부분 수열 LIS (longest increasing subsequence) 문제링크 문제 정보문제 ID시간 제한메모리 제한제출 횟수정답 횟수 (비율)LIS2000ms65536kb115273146 (27%)출제자출처분류JongMan연습문제보기문제어떤 정수 수열에서 0개 이상의 숫자를 지우면 이 수열의 부분 수열 (subsequence) 를 얻을 수 있다. 예를 들어 10 7 4 9 의 부분 수열에는 7 4 9, 10 4, 10 9 등이 있다. 단, 10 4 7 은 원래 수열의 순서와 다르므로 10 7 4 9의 부분 수열이 아니다.어떤 부분 수열이 순증가할 때 이 부분 수열을 증가 부분 수열 (increasing subsequence) 라고 한다. 주어진 수열의 증가 부분 수열 중 가장 긴 것의 길이를 계산하는 프로그램을 작성하라.어떤 수열의 각 수가 이전의 수보다 클 때, 이 수..
[SW Expert Academy] Code battle! 오늘은 약 1 ~ 2 주마다 SW Expert Academy에서 시행하는 Code Battle! 문제를 풀었습니다. D3 ~ D7 사이의 문제가 골고루 출제되는 듯 합니다. 현재 상황. SW Expert Academy의 문제는 함부로 공유하지 말라고 명시되어 있으므로, 링크를 올리겠습니다. 4522. 세상의 모든 팰린드롬 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWO6Oao6N4QDFAWw&categoryId=AWO6Oao6N4QDFAWw&categoryType=CODE 우선, 펠린드롬이란, 앞에서 읽어도 뒤에서 읽어도 같은 단어를 의미합니다. 이 문제에서는 '?' 단어가 나오면, 신경 쓰지 않고 무..

반응형