2020 카카오 공채 : 문자열 압축 (풀이 및 코딩)
조건은 s의 길이가 1 이상 1,000 이하.... 모든 알파벳은 소문자 입니다. 해당 코드는 2중 for문으로 충분히 풀이가 가능하고 탐색 조건도 쉽습니다. 앞에서부터 문자들을 차례대로 비교하면 됩니다. 처음엔 1개씩, 그 다음 2개, 그 다음 3개 ..... (s의 총 길이 / 2) 개 까지... 비교문자 마지막을 왜 s의 총 길이 / 2로 했냐면 그 이상 넘어가 버리면 비교의 의미가 없기 때문입니다. (비교할 수가 없죠) 그래서 예제 1번을 보면 aabbaccc 이렇게 있는데, 처음엔 a, a, b, b, a, c, c 하나씩 비교하고, 그 다음엔 aa, bb, ac, cc 이렇게 2개씩 비교하고, 그 다음엔 aab, bac, cc 이렇게 3개씩 비교하고..... 이런식으로 비교한 후 중복되는 알파..
2019. 11. 23.
C언어] 포인터(2) 사용법
포인터의 사용법은 이렇습니다. 선언 후 초기화. int num = 10; int *p; p = # 선언과 동시에 초기화 int num = 10; int *p = # 여기서 &num은 주소 값을 전달한다는 의미 입니다. 배열도 포인터가 됩니다. int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *p = arr; printf("%d\n", p[3]); 즉 포인터 변수에 배열의 시작 주소 값을 받으면 포인터 변수는 배열처럼 사용이 가능 합니다. 그럼 여기서 의문점이 하나 생깁니다. "&arr로 주지 않고 arr로만 줬는데 주소 값이 넘어갔내?" 원래 배열의 값을 표현할 때는 arr[0] 이런식으로 표현 합니다. 하지만 뒤에 대괄호를 빼고 arr만 표..
2019. 1. 19.