본문 바로가기

Coding/C + algorithm10

프로그래머스 중앙값 구하기(버블 정렬) 바깥쪽 반복문 i:배열의 전체 패스를 관리한다. 한 패스에서 배열에서 가장 큰 값을 끝으로 보내고, 그 다음 패스에선 다음으로 큰 값을 뒤로 보내고 나머지 부분을 정렬한다.array_len - 1번 반복하는 이유는 마지막 남은 요소는 정렬이 필요 없기 때문이다. 안쪽 반복문 j:배열 내의 인접한 요소를 반복적으로 비교하여 인접한 두 요소를 교환할지 여부를 결정한다.array_len - i - 1까지 반복하는 이유는 이미 정렬된 마지막 부분은 건너뛰어도 되기때문이다. i가 커질수록 마지막 부분은 이미 정렬된 상태가 되므로 굳이 비교하지 않는다. 인접한 두 요소 비교 (array[j] > array[j + 1]):배열의 array[j]와 array[j + 1] 두 요소를 비교하여, 앞쪽 값이 더 크다면 교환.. 2024. 10. 22.
strlen, strcpy, strcat 프로그래머스 0레벨 '접두사인지 확인하기' 문제이다. 이 문제를 풀 때 내가 생각한 조건들은,1. is_prefix의 길이가 my_string 보다 길다면 접두사가 될 수 없다.2. is_prefix[i] 와 my_string[i] 가 같지 않다면 접두사가 될 수 없다.이다.따라서 코드를,#include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.int solution(const char* my_string, const char* is_prefix) { int answer = 1; int i = 0; int l = 0; for(; is_prefix[i]; i++){ if(is_pref.. 2024. 10. 22.
Printf 출력 키워드와 형식 키워드%d%f%c%s출력 형식정수(10진수)실수문자문자열  data변수의 65라는 값을 %c로 출력하라고 지시하면 65를 아스키 값으로 간주하여 문자 A를 화면에 출력함.%d로 출력하라고 지시하면 65를 10진 정수로 간주하여 숫자 65를 화면에 출력함.  실수를 표현하는 키워드인 %f로 float형 변수 value를 출력하면 소수점 6자리까지 값을 출력해줌.하지만 정수를 표현하는 키워드인 %d를 입력하면 엉뚱한 숫자가 나옴.(오류를 표현하는 숫자)  32비트 정수형에서의 음수 최댓값인 -1과 32비트 정수형에서 최댓값인 4294... 는32개의 비트가 모두 1인 값이므로 부호를 고려하지 않는 %u 키워드를 통해 출력하면 같은 값이 출력된다.  %d와 %u는 변수 크기를 4바이트 값으로 변환해서 출력한다.. 2024. 10. 21.
C언어 예전부터 C에 관심이 있었는데, 한번 공부해 두면 다른 것들을 배울 때 훨씬 유용할 것 같아서 공부를 시작하였다.사실 실사용 할 일은 거의 없을 것 같지만, 그렇다고 해서 후회하진 않을 것 같다.공부한 지 이틀 되었는데 메모리 관리, 비트 단위 연산, 아스키코드 등 다른 언어를 배울 때는 접해보지 못한(소프트웨어스러운?) 것들이 많아 새롭다.특히 문자열 출력 함수인 printf를 사용 할 때 변수 값을 어떤 식으로 출력할 것인지 %키워드를 통해 명시하는 것이 제일 적응하기 힘들다.목표는 doit c언어 입문 책 완독, C로 프로그래머스 1단계 문제를 풀 수 있을 정도로 공부하는 것이다.C언어 공부를 통해 내 굳은 머리를 알고리즘 설계를 잘 할 수 있게끔 풀고 싶다.지금은 0단계를 천천히 풀어나가고 있는데.. 2024. 10. 21.