본문 바로가기
2일차 오전1: 알고리즘 한문제 풀기문제 제목: 약수의 개수https://school.programmers.co.kr/learn/courses/30/lessons/77884처음 만든 코드. 정말 바보같았다 문제는 약수만 구해서 계산하면 되는데 약수들의 합을 구했다. 약간 시간 날린 느낌..디버깅 하고 테스트 케이스 뒤져보고..에효..코드가 잘 돌아가지만 답에 오류가 있을 경우 문제를 잘 읽는 것이 중요하다.^^ 교훈을 얻었다.수정 코드. 훨씬 쉬운 문제였다.. 반복문으로 두뇌 회전 시킨 셈 치자.. 이러고 다른 알고리즘 문제 풀면서 또 저랬다. 오늘 뭔가 안좋다 오전 - 밤: 팀 프로젝트 진행발표 ppt 틀을 대강 만들고 시간을 체킹했는데 너무 오버돼서 다 만들고 다시 체크할 예정이다.git contributo.. 2024. 11. 5.
1일차 오전: ot를 마치고 팀 배정을 받았다. 다들 열정적이어서 나도 신나서 아이디어를 마구 냈다. 과하게 신난 탓에 발표를 맡게 되었다.그리고 팀명을 정하는 것이 정말 벽이었다. 변수 이름 정할 때보다 훨씬 힘들다. 오전 ~ 점심: 알고리즘 문제 풀기두뇌 회전용으로 알고리즘 1단계 3개를 풀었다. 윗단계 알고리즘은 앞으로 관련 도서를 읽고 난 후 천천히 할 생각이다. sqld 벼락치기만 해도 바쁘다 ㅠ배운 것: 문제 제목 :  수박수박수박수박수박수? 한글은 UTF - 8 인코딩에서 3바이트를 차지한다. 값이 한글인 경우에, 문자열 길이만큼 선언하게 되면 실제 할당된 영역을 벗어나서 메모리에 엑세스하려고 하기 때문에 코어 덤프가 발생한다.strcat을 사용한 코드도 있었다. 둘 다 복사하는 방식의 함수이므로 .. 2024. 11. 4.
프로그래머스 금과 은 운반하기(이진 탐색) 망할 프로그래머스 AI가 0~1단계 문제 몇개 좀 풀었다고 3단계 문제를 추천해 줬다..내가 문제를 맞출 확률이 56%나 된다길래 자존심 상해서 정말 .... 힘들게 풀었다.나름 뿌듯?문제짧게 요약하면 신도시를 건설하는 데에 금a, 은b가 들어가는데 기존 도시 i에 있는 자원을 몇 시간동안 옮겨야 하는지 return하면 된다.#include  #include  #include  bool can_transport(long long mid, int a, int b, int g[], int s[], int w[], int t[], size_t t_len) {     long long total_gold = 0, total_silver = 0, total_weight = 0;     for(int i = 0; .. 2024. 10. 28.
프로그래머스 짝수와 홀수(동적 할당, 문자열 리터럴의 특성) 되게 쉬운 문제인데, 동적 할당의 중요성과 문자열 리터럴의 특성을 공부해 볼 수 있었다. 기존 코드sizeof(char)로 1바이트만 할당했음에도 정상작동 되길래 이상함을 느꼈다.answer에 들어갈 값인 "Even" 이나 "Odd"는 4-5바이트가 필요하기 때문이다.(NULL을 고려하면 6) 기존 코드가 동작하는 이유:1. 문자열 리터럴"Even"이나 "Odd"같은 문자열 리터럴은 프로그램이 실행될 때 읽기 전용 메모리에 저장된다. 따라서 위 코드에서 answer는 실제 동적 할당된 메모리가 아닌 읽기 전용 메모리를 가리킨다. 문자열 리터럴을 할당하는 것 자체나 동작엔 문제가 없다. 포인터가 읽기 전용 메모리를 가리키는 것이기 때문에, 코드는 정상적으로 "Even" 또는 "Odd"를 반환하게 된다. 그.. 2024. 10. 23.
프로그래머스 문자열을 정수로 바꾸기('0'의 아스키 코드는 48) 0단계 문제들이 다소 반복적으로 느껴져서 1단계로 넘어왔다1단계에서 가장 쉬운(정답률이 가장 높고, 사람들이 많이 푼) 문제였지만 배운 게 많아 글을 작성하게 되었다.  문제만 보면 단순해 보이고 어떤 함수를 이용해서 한 방에 풀 수 있을 것 같지만 ..  처음 작성했던 코드:1. 아스키코드에서 문자1과 숫자1이 48만큼 차이나는 걸 보고 작성하였다.2. 변수 j는 자릿수 표현을 위해 pow(10, len - 1)을 대입하였다.3. 지금 보니 좀 바보같지만 -1을 곱하면 음수가 되는걸 answer =- answer로 처리했다  개선한 코드:1. 문자에서 '0'을 빼면 숫자가 된다고 한다. 왜냐하면 '0' 의 아스키코드 값은 48이기 때문이다.2. 변수 j를 생성해 자릿수를 표현한 기존과 다르게 이전에 계.. 2024. 10. 23.
프로그래머스 모음 제거(문자열의 끝에는 '\0'을 넣자) 문제 내가 생각한 문제풀이법:1. 반복문을 통해 my_string의 값을 0부터 strlen(my_string)까지 훑으며 모음이 나오면 continue제어문으로 실행 흐름을 변경시킨다.2. printf로 결과를 출력한다 처음에 작성한 코드 문제점:1. malloc으로 할당할 때 int가 아니라 char로 길이에 맞는 메모리를 할당해야 했다.2. answer에 값을 대입해야 하는데 printf로 값을 출력하려 했다.3. 문자열의 끝에 들어갈 '\0'을 고려하지 않았다. 동적 할당을 할 때에도 +1을 해주어야 한다. 개선한 코드:1. 앞서 말한 문제점을 전부 고쳤다.2. 변수 j를 선언해 마지막에 '\0'을 삽입해 문자열의 끝을 맺었다. 동적 할당을 배열 문제에서 두 번 밖에 안 써봐서 할당 길이를 상황에.. 2024. 10. 22.