본문 바로가기

Study

(120)
[백준 #9663] N-Queen 개요 백트래킹. 가지치기를 이용한다. dfs를 끝까지 갈 필요 없이 중간 가지를 자르면 된다. board라는 2차원 벡터에다 퀸을 놓을 수 있는지 여부를 저장한다. 퀸을 자리를 바꿔가면서 놔야하는데, 그때마다 [놓고 -> 다음 dfs돌고 -> 놓은거 다시 빼고] 과정을 거쳐야 함. 이 때 이전 상태를 복구하는 과정(빼는 과정)때 bool로 true/false힘들게 할 필요 ㄴㄴ 그냥 상태 변화시킬때 +=1(놓기), -=1(빼기) 해주기. 종만북 boardcover했던거처럼. 그리고 어차피 계속 행은 아래로 증가시키기때문에 상태를 변화시킬때 같은행~그 이전행들은 신경쓸 필요가 없다. 나는 퀸이 영향을 주는 자리를 기준으로 코드를 짰는데 다른 사람들은 퀸의 위치를 기준으로 코드를 짰다. board[][]대신..
백준 #1963 : 소수경로 https://www.acmicpc.net/problem/1963 > b; cout
백준 #9019 : DSLR bfs문제였다. 최단경로 => BFS ! 그리고 path reconstruct할때 reverse하는거 잊지말자! /** * @name: DSLR * @link: https://www.acmicpc.net/problem/9019 * @date 2020-04-30 * @author sunmon * TIP: String으로 이용 **/ #include #include #include #include using namespace std; int parent[10000]; string DSLR[4] = {"D","S", "L", "R"}; int dslr(int n, int t){ if(t == 0) return (n a >> b; cout
memset으로 bool값을 true로 설정해도 될까? 개요 memset은 1byte 단위로 해당 메모리 값을 초기화 시킨다 memset(포인터, 설정할 값, 크기) : void *memset(void *_Dst, int _Val, size_t _Size); : 끝나고 값 설정이 끝난 포인터를 반환한다. memset으로 int나 long 값을 10진수로 설정해줄땐 -1과 0밖에 설정하지 못한다. 물론 다른값을 설정할수도 있지만 그러면 원하는대로 안 들어간다. 이렇게만 가능! int num; memset(&num,-1, sizeof(num)); memset(&num, 0, sizeof(num)); 왜냐하면 memset은 1바이트 단위로 값을 넣기 때문이다. 0으로 초기화하는 경우를 보자. 1byte는 2진수로 00000000이다. 이걸 int크기인 4바이트로 ..
[백준] #10844 쉬운계단수 개요 동적계획법을 사용했다. 이 문제를 풀면서 많은 것을 배울 수 있었다. 1. 재귀로 너무 많이 돌리거나, cache[10000+1]이런식으로 커지면 메모리 초과가 난다.. 2. 메모리 초과가 나면 bottom-up방식을 생각해보자 3. 재귀 대신 for문 사용도 고려해보자 4. 어차피 피보나치처럼 n-2, n-1만 쓸거면 캐시를 100개씩 만들필요없고 3개만 만들어도 된다! 5. INT말고 LONG LONG쓰는거 주의하자 6. MOD연산도 주의하자 기존에는 맨날 재귀로만 돌려서 어떻게 bottom-up과 for문을 사용하는지 몰랐었는데 이 문제를 풀고 알게됐다. 재귀함수에 쓸 파라미터 수를 고려하여 cache나 저장할 변수를 만들어서 사용하면 된다. 코드 기존에 썼던 방법 (재귀): for문으로 bo..
코딩테스트에서 신경쓸 것 첫 번째 테스트케이스만 맞고 두번째부터 틀린다면 : 전역변수 초기화 전 역 변 수 초 기 화 뭔가 이상하다 dp인데 너무 복잡하다싶으면 : 조건 확인하기 문 제 조 건 확 인 너무 국소적인 부분으로 파고든다 싶으면 : 천천히 문제 다시 읽기 문 제 다 시 읽 기 최소값, 최대값 입력해봐서 결과 확인하기 최 대 최 소 입 력 테스트케이스끼리 순서 바꿔서 넣어보기. input받다 break; return;하면 다음 테스트케이스에 영향감 순 서 바 꿔 보 기 1. 전역변수 초기화 solution함수에서 계속 쓰는 전역변수. vector에 push_back하기 전에 초기화 했는가? - vector.clear() ; 원소만 지움. 메모리 할당한 것은 그대로! - 메모리까지 아예 초기화하는 방법; (vector v..
ARP테이블 title: "ARP테이블" last_modified_at: 2019-02-22 ARP 테이블 ARP 테이블: IP주소 - MAC주소를 매칭해주는 테이블. DNS처럼! cmd에 ①arp -d ②ping 8.8.8.8을 치면 ping[^1]시간/접속정보 등이 나온다. cmd에 ①arp-a를 치면 arp 캐시 테이블을 볼 수 있다. IP주소-MAC주소가 대응된 테이블이 나온다. Ping ping: TCP/IP환경에서 목적지 호스트가 잘 작동/응답하는지 점검하는 기능 ping 명령어를 입력했을 때, 내 컴퓨터에서 목적지까지 찾아가는 과정은 다음과 같다: 목적지 호스트 찾아가기 서브넷 마스크 이용, 네트워크 ID 찾음 출발지 Network ID와 도착지 Network ID 비교 [출발지 네트워크ID ≠ 도착지 ..
DHCP,DNS,MAC주소 title: "DHCP,DNS,MAC주소" last_modified_at: 2019-02-21 DHCP DHCP : Dynamic Host Configuration Protocol. TCP/IP통신을 위해서는(이더넷?인터넷?에 연결하기 위해서는) 사용자가 다음과 같은 정보를 설정해 주어야 한다: IP주소 서브넷마스크 게이트웨이 DNS 주소 DHCP는 이와 같은 정보들을 자동으로 할당해주는 역할을 한다. 따라서 사용자가 일일히 정보를 입력 할 필요가 없다. DHCP를 사용하게 되면 동적 IP를 사용하게 된다. cmd에 ipconfig/all 명령어를 치면 DHCP 사용 여부를 알 수 있다. 만약 [DHCP주소 == 게이트웨이 주소]라면? 공유기가 DHCP기능 / 게이트웨이 기능 둘 다 수행한다는 뜻이다! ..