분류 전체보기
-
숙직 선생님Algorithm with C/BFS 2020. 9. 7. 10:19
1. 문제 https://designatedroom87.tistory.com/77?category=881035 숙직 선생님 1. 문제 2. 문제분석 BFS 나 DFS는 항상 트리의 개념으로 이해를 해야 한다. 그리고, 위의 입력 예시와 같이 먼저, 선생님의 현재위치를 1로 고정시키고, 누군가의 위치를 15로 고정 시키자. 그러면 designatedroom87.tistory.com 2. 필요한 자료 구조 정의 위와 같이 전역 변수를 정의하며, 변수의 목적은 다음과 같다. 각 위치까지 이동한 회수가 배열의 값으로 기록 된다. 배열의 인덱스가 숙직 선생님의 이동한 위치로 쓰이며, 배열의 값은 숙직 선생님이 이동한 위치(인덱스)로 올때 까지의 이동 회수이다. 배열이 16칸인 이유는 숙직 선생님이 이동할 위치는 ..
-
집합의 부분 집합 출력하기 - 상태공간트리Algorithm with C/DFS 2020. 9. 7. 10:15
1. 문제 입력으로 ABC가 입력되었다고 가정했을 때, 이 ABC의 부분집합들을 출력하면 된다. 입력 ABC 출력 { } { A }, { A, B }, { A, B, C } { B }, { B, C } { C } 구현방법 먼저, 출력의 형태를 다음과 같이 다시 써보도록 하자. 집합의 원소 개수가 3일 때, 부분집합의 개수는 총 2^3 = 8개가 나온다. 구현 방식은 두 가지가 있다. 첫 번째 방식은 별도의 출력 배열을 가지고 있는 경우와 두 번째 방식은 별도의 메모 배열( 동적 프로그래밍을 위한 )을 두고서 기록하는 경우이다. 두 부분에서 일치하는 방식은 아래와 같다. 먼저 사용자로부터 집합 원소의 개수를 입력 받도록 하자. 입력으로 3이 들어오면, 3칸짜리 char형 배열이 만들어지면서 이 배열안에 각..
-
-
ItoAC/문자열 함수 2020. 9. 4. 23:49
1. ItoA 함수 사용 방법 ItoA함수는 visual studio 2019 community에서는 에러가 난다. 그 대신 sprintf함수를 이용해서 이를 대체할 수 있다. 밑에서는 기존에 쓰던 ItoA 함수를 구현할 것이다. 프로그램 실행결과 2. ItoA 함수의 구현 마지막 매개변수는 진법을 의미하며 십진수로 쓰고 싶으면 마지막 매개변수로 10을 주면 된다. 첫 번째 매개변수는 정수값이며, 해당 정수값을 두 번째 매개변수에 문자화 시켜서 집어 넣어주면 된다. 위의 함수를 크게 보면 while루프에서 하는 일은 _Value값을 _Radix(진법)로 나눈 나머지 값을 먼저 확인해본다. 나머지 값이 10과 같거나 크다는 의미는 십진법이 아니라는 의미.(대개 16진수의 경우이다.) 십진법이 아니라면, 정..
-
strtokC/문자열 함수 2020. 9. 4. 20:56
1. strtok 함수의 사용 방법 프로그램 실행결과 2. 위의 소스 분석 분석할 부분은 세 부분이다. 이를 ⓐ, ⓑ, ⓒ 라 하겠다. ⓐ 위의 문장은 토큰을 나눌 기준으로 사용할 문자열을 선언하고 있다. 즉, ",."이 토큰의 기준이다. ⓑ 첫 번째 strtok함수 호출을 통해서 토큰을 나눌 문자열과 그 기준을 지정하고 있다. 그리고 함수의 반환 값은 첫 번째 토큰의 주소 값이다. ⓒ 위의 while문을 분석해보자. strtok 함수가 NULL을 반환하지 않을 때를 while문이 게속되기 위한 조건으로 지정하고 있다. strtok 함수는 더 이상 나눌 토큰이 없을 때 NULL을 반환한다. 그리고 wile문 내의 strtok 함수의 첫 번째 매개변수는 NULL이다. 이는 ⓑ에서 지정해 놓은 토큰관련 정보..
-
strcmp - 문자열 비교 함수C/문자열 함수 2020. 9. 4. 11:45
1. strcmp 함수의 사용방법 프로그램 실행결과 strcmp함수가 반환한 값이 0이면 두 문자열이 같다. strcmp함수가 음의 정수를 반환한다는 의미는 두 문자열에 다른 문자가 존재할 뿐 아니라, 처음으로 나오는 다른 문자를 비교해보면 str1의 문자코드가 str2의 문자코드보다 작음을 의미. 쉽게 말해서, 사전 편찬 순서를 구하고 싶을 때 응용이 가능함을 알 수 있다. apple과 banana라는 두 문자열이 있다고 하면, 어떤 문자열이 앞설수있냐면 apple이다. 사전 편찬 순서로 보면 a가 b보다 앞서기 때문이다. 2. strcmp함수의 구현 프로그램 실행결과 3. 구현한 strcmp 함수의 분석 위는 while문의 조건이다. _Str1과 _Str2가 모두 널 문자를 가리킬 때 이 while ..