반응형

전체 글 216

[ C++ ] #2577 ( 숫자의 개수 )

어떻게 각 자리 숫자를 확인할까 하다가 몇자리인지 확인하고 그만큼 반복하며 일의자리 수 체크 10으로 나누기를 했다. 하지만 훨 간단한 방법이 있었다. 난 몇번반복하는가에 대하여 고민을 많이 했는데 이를 한번에 해결할 방법이 있었다. 밑에 주석처리 해놨으니 참고하면 될 것 같다. #include #include using namespace std; int main() { int a, b, c,sum; int num[10] = { 0, }; cin >> a >> b >> c; sum = a * b * c; int D=10,B=1; while (sum>D) { D *= 10; B++; } for (int i = 0; i < B; i++) { num[sum % 10]++; sum /= 10; } /* whil..

BOJ/[ BOJ ] C++ 2022.02.20

[ 11강 ] 연결리스트 (Linked List)

연결리스트 (Linked List) - 데이터를 저장한 노트들을 포인터로 연결한 자료구조 - 동적인 자료구조 : 노트를 리스트에 추가하거나 제거함 - 생성, 탐색, 삽입, 삭제 가능 - 하나의 리스트의 각각의 노드는 연속된 공간이 아니라 힙 공간에 분산되어 위치된다. 장점 원소의 재배열이 쉽다 메모리의 낭비를 맞을 수 있다 (동적이기에) 단점 포인터를 위한 공간 소비 동적 메모리의 관리가 필요하다 리스트 중간의 원소로 직접 접근 불가 (순차접근 가능) 종류 단순 연결 리스트 이중 연결 리스트 환형 리스트 이중 환형 리스트 단순 연결 리스트 노드들을 일렬로 연결한 것 각 노트는 자료값과 다음 노드에 대한 포인터로 이루어짐 이전 노드를 바로 접근할 수 없다. CLinkedList::CLinkesList(){..

[ 알고리즘 ] 연결리스트, STL list

연결리스트 원소들을 저장할 때 그 다음 원소가 있는 위치를 저장하는 자료구조 특징 k 번째 원소를 확인하기 위해 O(k)가 필요하다 임의의 위치에 원소를 추가,제거는 O(1) 종류 단일 연결리스트 이중 연결리스트 원형 연결리스트 배열 vs 연결리스트 // 연결리스트에 원소를 넣었다가 뺏다하는 함수 #include using namespace std; const int MX = 1000005; int dat[MX], pre[MX], nxt[MX]; int unused = 1; void insert(int addr, int num) { dat[unused] = num; pre[unused] = addr; nxt[unused] = nxt[addr]; if(nxt[addr]!=-1) // 맨 끝에 삽입하는게 아..

공부/알고리즘 2022.02.20

[ C++ ] #10804 ( 카드 역배치 )

열심히 해봤는데.. 그냥 순서대로만 나온다ㅠㅠㅠ 한시간 넘게 풀어도 여러번 해봐도 순서대로만 나온다.. 결국 답지를 봤고.. 답지와 내 답이 똑같은데 왜 안되지? 하며 30분을 고민했다 알고보니 사소한 실수 때문이었다 ㅠㅠ 알고리즘 짤 때는 잘 짰는데 코드로 옮기면서 나누기2를 안한 것... 이런 아 이런 좀 더 꼼꼼하게 보도록.. #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(nullptr); int num[21]; for (int i = 1; i > a >> b; for (..

BOJ/[ BOJ ] C++ 2022.02.11

[ C++ ] #10093 ( 숫자 )

하.. 이번문제도 문명 예제대로 출력이 되는데 자꾸 틀렸다고 떴다.. 이런 경우 참 뭐 고칠데도 없보여서 어찌해야할지 모르겠다. 고민하다가 답지를 봤다. 나의 문제점은 1) a와 b가 같을 때를 고려하지못함 2) a가 b보다 큰 경우를 고려하지 못함 난... 예외처리를 안해주도 되는줄 알았다. 하지만 따로 안해도 된다는 말이 있는 것이 아니면 해야할 것 같다. 이 문제 코드는 굉장히 짧았지만 정답률이 20퍼 대였다 모두 나와같은 실수를 했겠지? #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(nullptr); long long a, b; cin >> a >> b; if (a >b) { swap(a, b..

BOJ/[ BOJ ] C++ 2022.02.09

[ C++ ] #2309 (일곱 난쟁이)

여러 방법으로 시도했는데... 안된다 악악!!! 내가 해본 방법은 (9개 합 - 100) 해서 나온 값을 저장하고 난쟁이들의 키를 하나하나 더해서 그 값이 나오는걸 찾앗 지운다. 였다 하지만 되지 않는다..... 오랜시간 고민하고 답지를 봤다. 하.. 알고리즘은 생각했던건데 구현방법을 모르겠어서 포기했던 방법이 정답이었다. 나중에 다시 풀어봐야겠다 #include using namespace std; int num[9], result[7]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); for(int i = 0; i > num[i]; // 9명 중 2명을 뺀 모든 조합 고려 for(int a = 0; a < 8; a++) { i..

BOJ/[ BOJ ] C++ 2022.02.09
반응형