|
|
코딩 테스트 - 15353 큰수 A+B (2)
( 얄얄 코딩 | 23-05-27 04:36 )
|
|
이런 문제 유형을 옛날에 만나봤던 것 같다. 모듈러 연산을 했던 것으로 기억했었는데, 다시 푸려니깐 헷갈렸다. 이런 문제 유형이 제일 재미있는 것 같다. 다음에 또 틀리지 않도록 한번 더 풀어봐야겠다. string a, b; int main() { cin >> a >> b; int sum = 0; string ret; while ... Tag: 코딩 테스트
|
|
코딩 테스트 - 15926 현욱은 괄호왕이야!!
( 얄얄 코딩 | 23-05-27 06:27 )
|
|
이 문제는 예전에 괄호를 짝지어서 풀었던 문제랑은 다르다. 심화버전인 것 같은데, 맨 처음에 괄호를 stack으로 짝지어서 푸는 문제인 줄 알고 풀었다. 답도 똑같이 나왔지만 반례가 있었다. 처음에 풀었던 버전은 int n; int cnt, ret; stack<char> st; int main() { cin >> n; for ... Tag: 코딩 테스트
|
|
C++ - n진법 변환하기
( 얄얄 코딩 | 23-05-15 23:55 )
|
|
코딩테스트에 자주 나온다는 문제이기도 하고, 짧은 코드라 외우기도 쉬울 것 같다. 10진수인 53을 2진수로 변환한다면 53 % 2 = 1 26 % 2 = 0 13 % 2 = 1 6 % 2 = 0 3 % 2 = 1 3 / 2 = 1 결과를 거꾸로 읽으면 된다. 53의 2진수는 110101 이다. 코드는 이렇다. vector<i... Tag: C++
|
|
코딩 테스트 - 1094 막대기
( 얄얄 코딩 | 23-05-16 00:03 )
|
|
문제 자체는 그렇게 어렵지 않았는데, 처음 접한 유형이다보니 너무 어렵게 생각해서 코드가 길어졌다. 그냥 십진수를 이진수로 변환할 때 그 카운트만 센다면 간단하게 넘어갈 수 있는 문제였다. [코딩/C++] - C++ - n진법 변환하기 C++ - n진법 변환하기 코딩테스... Tag: 코딩 테스트
|
|
코딩 테스트 - 2234 성곽 (DFS + 비트마스킹)
( 얄얄 코딩 | 23-05-16 04:23 )
|
|
어느정도 이제 DFS의 체계가 잡히는 느낌이다. 하지만 갑자기 비트마스킹이라는 애가 DFS껴서 당황스러운 문제이다. 일단 DFS에서 Connected Component를 사용해서 푼다는 것은 알았지만 그 다음에 벽을 뚫어서 가장 큰 두방의 크기를 출력하라는 것은 어떻게 생각해도 상... Tag: 코딩 테스트
|
|
코딩 테스트 - 11723 집합
( 얄얄 코딩 | 23-05-16 05:21 )
|
|
이걸로 비트마스킹 연습은 되는 문제였다. 그리고 시간복잡도에 민감한 문제라서 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 위에 코드랑 '\n' 이걸 꼭 사용해야만 통과된다. int n, i; string s; int a; int main() { ios_base::sync_with_st... Tag: 코딩 테스트
|
|
코딩 테스트 - 13244 Tree
( 얄얄 코딩 | 23-05-17 02:01 )
|
|
Tree랑 graph랑 구별하는 문제이다. 두가지 1. 커넥트 컴포넌트가 값이 1인지. 2. enge = vertex -1 인지. 이 두개만 잘 체크해주면 된다. using namespace std; int t; int n,m, mx; int cnt; vector<int> v[1004]; int visited[1004]; void dfs(int here) { vi... Tag: 코딩 테스트
|
|
C++ 가로 줄 세로 줄 체크해야 할 때, 좋은 방법
( 얄얄 코딩 | 23-05-14 17:23 )
|
|
가로 줄 세로 줄 체크할 때 로직을 따로따로 만들어야 한다. 하지만 '14890 경사로'를 푼 뒤 좀 편한 방법을 알았다. 한 개의 함수를 이용해서 풀고, 두 개의 배열을 만드는 것이다. for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { ci... Tag: C++
|
|
코딩 테스트 - 1987 알파벳 (비트마스킹으로 풀기)
( 얄얄 코딩 | 23-05-14 05:12 )
|
|
이렇게도 풀 수 있다는게 신기하다. 조금 더 연습해 봐야 알겠지만 아직까지는 DFS가 몇 줄 더 추가해도 편하다.. 비트마스킹에 좀 익숙해지면 훨신 코드가 간략해 질 것 같다. using namespace std; int n, m, ret; char a[24][24]; int dy[] = {-1,0,1,0}; int dx[] = {0,1,0,... Tag: 코딩 테스트
|
|
코딩 테스트 - 19942 다이어트
( 얄얄 코딩 | 23-05-13 18:08 )
|
|
비트마스킹을 통해서 경우의 수 문제가 조금 더 간단해 진 느낌이 든다. 앞으로도 많이 사용해 보아야겠다. using namespace std; int n; int mp, mf, ms, mv, INF=987654321; int b, c, d, e, ret = INF, sum; map<int, vector<vector<int>>> ret_v; struct A ... Tag: 코딩 테스트
|
|
DirectX12 - Texture Mapping
( 얄얄 코딩 | 23-05-13 19:35 )
|
|
렌더링 파이프라인에서 Rasterizer라는 곳을 거쳐서 표현이 되는데, 어느 정점을 넘겨주면 자연스럽게 보간을 해주는 파이프라인이다. (삼각형, 색상.. 등등) Texture 사전작업이 필요하다. 마이크로소프트에서 제공하는 DirectXTex 라는걸 사용해야 한다. https://github.com/microsoft/Di... Tag: DirectX
|
|
비트마스킹 - idx번째 비트 끄기
( 얄얄 코딩 | 23-05-13 03:02 )
|
|
10010 = 18 이다. 뒤에서 2번째 비트를 끄고싶다. 라고 하면 int S = 18; int idx = 1; S \&= ~(1 << idx); S \&= ~(1 << idx) 이 공식을 사용하면 되는데 이 이 원리는 1 << 1 (1번째를 끈다고 가정) 00000010 이 된다. 그럼 ~을 할 경우 1111... Tag: C++
|
|
비트마스킹 - idx번째 XOR 연산
( 얄얄 코딩 | 23-05-13 03:12 )
|
|
(토글) 버튼처럼 만드는 것이다. 10010 = 18 이다. 0번째 비트를 0이라면 1로 바꾸고 1이라면 0으로 바꾸고 싶다. S ^= (1<<0) 이 공식을 사용하면 되는데. int S = 18; int idx =1; S ^= (1 << idx); XOR연산자는 같은 것을 싫어하기 때문에 1로 X... Tag: C++
|
|
비트마스킹 - 최하위 켜져있는 비트 찾기
( 얄얄 코딩 | 23-05-13 03:21 )
|
|
10010에 서 최하위에 켜져있는 것은? 10이다. 10100에서는? 100이다. int S = 18; int idx = (S \& -S); S \& -S가 무엇이냐면 S = 10010 이다 -S == ~S +1 이기 때문에 -S = 01110 이다. 그래서 이걸 \& and 연산을 해보자. 10010 01110... Tag: C++
|
|
비트마스킹 - 크기가 n인 집합의 모든 비트를 켜기
( 얄얄 코딩 | 23-05-13 03:30 )
|
|
요건 좀 신기하다. 5만 모두 켜져있는 비트 만들기! n = 5 라고하고 int n = 5; cout << (1 << n) - 1; 1 << 5 는 100000 이고 이건 32이니까 여기서 32를 -1해주면 31로 11111이 된다. Tag: C++
|
|