공부 일지/알고리즘

6,9 따로 떼고 생각해보자 #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; int cnt[10]={}; while(n>0){ cnt[n%10]++; n/=10; } int set = 1; for(int i =0; i < 10; i++){ if(i == 6 || i == 9) continue; set = max(set,cnt[i]); } set = max(set, (cnt[6]+cnt[9]+1) / 2); cout
풀이1 int를 문자열로 바꾸는것을 통해 아스키코드값을 이용하여 풀 수 있다. #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int a, b, c; int cnt[10]={}; cin >> a >> b >> c; int res = a * b * c; /* std::to_string(val) 숫자(int, long, float, double 등)를 문자열(string)으로 변환하여 반환해주는 함수를 사용한다. */ string s = to_string(res); for( auto x : s){ cnt[x - '0']++; } for( auto y : cnt){ cout a >> b >> c; int res = a..
#include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n, a, b; cin >> n; while(n--){ cin >> a >> b; cout
#include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int a, b; cin >> a >> b; cout
0x00 알고리즘 설명 정점과 간선으로 이루어진 자료구조인 그래프라는 자료구조에서 모든 노드를 방문하기 위한 알고리즘이다. 0x01 예시 원리를 이해해보자 우선 BFS 알고리즘에서는 좌표를 담을 큐가 필요하다. BFS 알고리즘이 시작되면 우선 (0, 0)에 방문했다는 표시를 남기고 해당 칸을 큐에 넣는다. 이 초기 세팅이 끝난 후에는 큐가 빌 때까지 계속 큐의 front를 빼고 해당 좌표의 상하좌우를 살펴보면서 큐에 넣어주는 작업을 반복하게 된다. 첫 시작(큐의 front)을 기록해놨으면 pop을 하고 그 점으로부터의 상하좌우 칸을 보는데, 이 중에서 파란색 칸이면서 아직 방문하지 않은 칸을 찾을것이다. 위 상황을 보면 (0,0)과 상하좌우로 인접한 (0,1)과 (1,)은 모두 파란칸이면서 방문하지 않았..
0x00 수식의 괄호 쌍이란? 괄호를 빼놓고 봐도 위에껀 올바른 수식의 괄호 쌍이고 밑에껀 그렇지 않다는게 딱 눈에 들어올 것이다. 이와 같이 수식의 괄호 쌍이란, 주어진 괄호 문자열이 올바른지 판단하는 문제이다. 0x01 문제 해결을 위한 관찰 올바르게 문자열을 읽을때 문자열을 앞에서부터 읽어나갈 때, 닫는 괄호는 남아있는 괄호 중에서 가장 최근에 들어온 여는 괄호와 짝을 지어 없애버리는 명령이라고 생각해도 된다. 문자열을 다 읽었고 남아있는 괄호가 없는 것으로 보아 모든게 다 짝이 잘 맞았다는걸 알 수 있다. 이처럼 올바른 괄호 쌍일 경우 여는 괄호를 읽을 때 마다 저장하다가 닫는 괄호를 읽을 때 가장 최근에 들어온, 즉 가장 끝에 있는 여는 괄호와 짝을 이루게 해주고 pop을 하면 올바른 괄호 쌍인..
https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net #include using namespace std; int main(void){ ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; //1)n,m 입력받기 deque DQ; for(int i=1; i > val; int idx = find(DQ.begin(), DQ.end(), val) - DQ.begin(); while(DQ.fro..
Roble
'공부 일지/알고리즘' 카테고리의 글 목록 (2 Page)