본문 바로가기

자료구조3

객체의 키와 값에 접근하는 방법 이상하게 생각한게 있었다 객체의 key나 value 를 접근할때 for in 문을 사용해서 객체의 속성을 순회하며 배열로 받는데 객체명.keys() 으로 객체 속성 key 값에 접근 가능한 객체가 있는가 하면 Object.keys(객체명) 으로 접근 가능한 객체가 있었다 용도는 같지만 서로 사용처가 달라서 왜 그런지, 어쩔때 둘 중 하나를 써야하는지 몰라 애를 먹곤했다 결론부터 말하자면 객체를 순회하며 데이터를 배열로 반환하고자 할때, 특수한 객체인 Map , Set , Array (자료구조) 에서만 객체명.keys() , 객체명.values() , 객체명.entries() 로 사용한다 그 외의 일반 객체에서는 Object.keys(객체명) , Object.values(객체명) ,Object.entrie.. 2022. 8. 29.
[백준 10845/c++] 큐 이전 집합문제와 같은 문제다 큐라는 문제이름처럼 큐를 사용하되, 큐를 사용해서 선입선출을 사용하면 간단히 풀리는 문제다 queue로도 풀리지만 dequeue 연습해볼겸 디큐를 사용하여 풀어보았다 사실 저 코드에서 dequeue 를 queue로 바꿔도 잘 돌아간다 큐의 확장기능이 디큐이기 때문이다 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net #include using namespace std; int main(){ ios_ba.. 2022. 7. 7.
백준 3986/c++ )) 좋은 단어 - 스택 사용 개선답 이전 풀이는 수열의 규칙을 찾아서 풀려고 하다가 반례가 나와서 실패했다 스택을 통해서 테트리스처럼 새 단어와 stack 맨 위의 단어가 같으면 top을 pop 해서 없애주고 top과 새 단어가 다르면 stack 에 push 하여 쌓는 과정을 통해서 쉽게 코드를 짤 수 있었다 느낀점 : 문제에 맞는 최적의 자료구조를 이용하여 로직을 짜야 시간낭비도 적고, 정확도도 높은 코드를 작성가능하다 #include using namespace std; int n; string s; int main(){ int cnt=0; // 여기에 스택 선언 시, 아래 for문에서 돌때마다 스택안 값들이 남아있어서 에러가 난다 cin >> n; for(int i=0; i> s; // 한번 돌때마다 새로 stk 를 선언, 새 스택을.. 2022. 6. 16.