관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

프로그래밍을 위한 프롬프트 엔지니어링 5 - 효율적인 코드로 변환하기와 전처리 코드 추가하기 본문

인공지능/프롬프트 엔지니어링 & 생성형 AI

프로그래밍을 위한 프롬프트 엔지니어링 5 - 효율적인 코드로 변환하기와 전처리 코드 추가하기

huenuri 2024. 12. 21. 14:38

남은 실습 세 문제 중에서 파이썬 코드로 작성하는 문제들을 풀어보겠다.


 

 

 

 

실습 5 - 효율적인 코드로 변환하기

 


 

 

 

코드 설명

 

이 코드는 다음과 같은 기능을 수행한다.

  1. 사용자로부터 n개의 (x, y) 형태의 정수 쌍을 입력받아 2차원 리스트에 저장한다.
  2. 이 리스트를 다음 기준으로 정렬한다.
    • 첫 번째 값(x)을 기준으로 오름차순 정렬
    • 만약 첫 번째 값(x)이 동일하다면, 두 번째 값(y)을 기준으로 오름차순 정렬
  3. 정렬된 결과를 출력한다.

 

개선된 코드

현재 코드에서는 직접 버블 정렬 방식으로 정렬을 구현했지만, Python의 내장 정렬 함수인 sorted() 또는 리스트의 sort() 메서드를 사용하면 간결하게 작성할 수 있다.

수정된 코드는 다음과 같다. 먼저 원래 코드이다.

 

 

원래 27줄이던 코드가 이처럼 10줄로 3배나 더 줄어들며 간결해졌다. 진짜 이 코드가 맞는지 물어보고 싶었다.

 

 

 

 

 


 

 

 

 

실습 6 - 전처리 코드 추가하기

 


 

 

문제 확인하기


 

 

 

 

결과를 보니 현재는 정확도가 79%이다. 여기에 이상치를 제거하는 코드를 추가해서 정확도를 올려볼 것이다.


 

 

 

코드 수정하기

처음에는 정확도가 똑같아서 다시 한번 요청했다. 이때는 코드에 이상치를 제거하는 IQR(Interquartile Range) 방식을 사용했다. 하지만 이번에는 이상치 제거 방식을 IQR에서 z-score로 변경했어. z-score를 이용해 절댓값이 3을 넘는 이상치를 제거하도록 설정했다.


 

 

 

 

 

이번에는 매우 잘 되었다. 선생님 코드는 정확도가 80%밖에 되지 않았는데 난 문제에서 요구한 대로 82% 이상으로 맞추었다.


 

 

 

 

 

학습을 마치고

실습 문제도 두 문제 이어서 풀었다. 결코 쉬운 문제가 아니었으나 코드를 여러 번 수정하며 정답을 이끌어냈다. 이렇게 매일 하루도 거르지 않고 그날의 목표를 정해 열심히 공부하는 나 자신의 모습이 정말 뿌듯하고 기특할 정도이다. 누구 하나 알아주지 않아도 공부는 나 혼자서 하는 것이다.

세상에는 누군가를 진정으로 칭찬하며 격려하는 사람이 거의 없다. 대부분 다른 사람의 잘됨을 배 아파하거나 부러워하며 아니꼬운 마음을 갖는 사람들이 많다는 것을 기억하자. 그리고 좋은 것이 있으면 혼자서만 보고 남과 공유하려고 하지 않는다. 그저 남의 것을 훔치는 사람들만 많이 보았다. 

 

블로그 활동을 한지도 5개월이 다 되어가지만 구독자는 개발자 한 사람는 거의 없으며 고작 5명의 사람들뿐이다. 구독자라고 해서 좋아할 게 하나도 없다. 구독을 한다는 건 그냥 내 것을 몰래 훔쳐보겠다는 의미이다. 구독자가 반응을 남기는 경우는 거의 보지 못했다.

그리고 내 글에 댓글을 다는 사람들은 하나도 읽지 않고 거짓으로 잘 읽었다고 홍보하는 사람들뿐이다. 그런 것을 볼 때마다 마음이 좋지 않다. 근데 이상한 것은 분명 많은 사람들이 보는데도 개발자나 뭔가 도움을 얻어간 사람은 아무도 반응을 하지 않고 그냥 보기만 한다는 것이다. 그러면서 난 세상에는 두 종류의 사람만 존재한다는 것을 알게 되었다. 남의 것을 훔치는 사람과 자기 것을 홍보해서 돈이나 이익을 얻으려는 사람들..

아무런 관심을 받지 않는 것이 오히려 당연한 것이며 나를 칭찬하고 인정해줄 사람은 이 세상에 단 한 사람 나 자신밖에 없다.