전체 글 82

[알고리즘] 버블 정렬

버블 소트는 인접한 두 원소를 비교해가며 더 큰 값을 한 쪽 끝으로 밀어 올리는 정렬 알고리즘이다. 가장 단순하고 직관적인 알고리즘이라 정렬의 기본 개념을 이해하는 데 매우 유용하다. 마치 큰 거품이 물 위로 차례로 떠오르는 모습과 같다며 해당 이름이 붙었다.정렬 과정 (오름차순)한 번 순회할 때 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를 등 계속 마지막 바로 전 원소와 마지막 원소와 비교하여 가장 큰 값을 오른쪽 끝으로 이동한다.한 번 순회할 때 생긴 오른쪽 끝의 가장 큰 값은 고정되어 다시 비교할 필요가 없다.정렬이 완료될 때까지 반복한다.파이썬 코드def bubble_sort(arr): n = len(arr) for i in range (n): for ..

카테고리 없음 2025.08.17

[백준 7568번] 덩치 - python

https://www.acmicpc.net/problem/7568📌 문제 탐색하기목표몸무게와 키를 비교하여 덩치 등수 매기기몸무게와 키 모두가 커야지 등수가 더 높다.입력값첫 줄에는 전체 사람의 수 N이 입력된다. (2 ≤ N ≤ 50)N개의 줄에 각 사람의 몸무게와 키가 양의 정수로 공백을 두고 주어진다. (10 ≤ x, y ≤ 200)ex)5 55 185 58 183 88 186 60 175 46 155출력값나열된 사람의 덩치 등수를 구해서 입력된 순서대로 등수를 한 줄로 출력한다.ex)2 2 1 2 5📌 코드 설계하기해결 아이디어입력을 받으면서 비교를 해야할까 먼저 고민을 했다. 근데 입력을 받으면서 비교하려면 처음 입력된 사람의 키 몸무게는 비교할 대상이 없어서 나중에 다시 비교를 하려면 계산..

개발/python 2025.08.17

[백준 2947번] 나무 조각 - python

https://www.acmicpc.net/problem/2947📌 문제 탐색하기목표나무 조각 5개를 앞에서 부터 하나씩 바꿔가며 정렬하기두 개의 나무 조각에 써져있는 수를 비교하며 앞 조각의 수가 뒷 조각의 수보다 크면 위치를 바꾼다.입력값1, 2, 3, 4, 5 숫자가 랜덤으로 배치되어 한 줄에 입력된다.ex) 2 1 5 3 4출력값두 조각의 순서가 바뀔 때마다 조각의 순서를 출력한다.ex)1 2 5 3 4 1 2 3 5 4 1 2 3 4 5📌 코드 설계하기해결 아이디어차근차근 수를 비교하며 정렬을 한다.완료된 정렬 결과와 실제 정렬 결과와 비교를 한 후 일치하지 않으면 다시 처음부터 비교하며 정렬을 진행한다.📌 정답 코드block = list(map(int, input().split()))wh..

개발/python 2025.08.16

[백준 25305번] 커트라인 - python

https://www.acmicpc.net/problem/25305📌 문제 탐색하기목표n명의 응시자 점수 중 상위 k명을 선별상을 받을 사람 중 가장 낮은 점수(커트라인)을 출력입력값응시자의 N(1 ≤ N ≤ 1000), 상 받는 사람의 수 k(1 ≤ k ≤ N)각 학생의 점수 $x$ (0 ≤ $x$ ≤ 10000)한 줄에 공백을 주고 주어짐.출력값상을 받는 커트라인 점수📌 코드 설계하기해결 아이디어점수 리스트를 내림차순으로 정렬k-1번 인덱스를 가진 점수 출력📌 정답 코드n, k = map(int, input().split())arr = list(map(int, input().split()))[:n]arr.sort(reverse=True)# print(arr)print(arr[k-1])시간 복잡도..

개발/python 2025.08.15

[백준 1181번] 단어 정렬 - python

https://www.acmicpc.net/problem/1181📌 문제 탐색하기시간 제한이 1초니까 최대 2중 for문까지만 가능하다.반에 있는 학생 수 n 입력으로 주어지고이름, dd, mm, yyyy가 주어져서 나이 가장 적은 사람과 가장 많은 사람의 이름을 출력하는 것이군!각각 하나를 배열로 저장하려면 2차원 배열이어야하는데 다른 방법없나? + 입력 받을 때마다 가장 나이가 많은 사람과 적은 사람을 저장할 수 없나?날짜가 거꾸로 주어져 있으니까 yyyymmdd로 바꿔서 저장하고 int로 바꿔서 매턴마다 비교해서 이름 저장해야겠다!📌 코드 설계하기입력 n 받고for문 돌면서 입력 받을 때 split()으로 받는다. 그리고 다시 date라는 변수에 yyyymmdd를 저장한다.매 생일이 입력될 때마..

개발/python 2025.08.14

[백준 1181번] 단어 정렬 - python

https://www.acmicpc.net/problem/1181📌 문제 탐색하기길이가 짧은 단어부터 출력길이가 같으면 사전 순으로 출력중복된 단어는 제거하기📌 코드 설계하기총 단어 개수 입력을 받고 for문을 돌면서 단어를 받을 예정이다. 다만, 단어를 받으면서 정렬을 진행할까 고민된다. 그렇게되면 배열보다는 linked list가 편할거같고.. 근데 여기서 연결리스트는 너무 과하지 않나..?라는 생각이 든다.차라리 단어를 다 받아서 파이썬 내장 함수인 lambda로 짧은 단어와 사전 순 정렬을 한 번에 처리해버리자.이제 중복된 단어만 제거하는 로직만 짜면 된다. for문 두 개 돌면서 다음 index의 값과 다르면 추가하면 되지 않나?→ 알고보니 이렇게 되면 마지막에 같은게 두 개 있으면 값이 저..

개발/python 2025.08.13

[백준 10814번] 나이순 정렬 - python

https://www.acmicpc.net/problem/10814📌 문제 탐색하기시간 제한 3초정수 n이 들어오고 n만큼 돌면서 나이와 이름 받기.공백으로 받으니까 .spit()함수 쓰고 이차원 배열로 저장해야겠다.나이를 기준으로 정렬하고 같은 수일 경우 먼저 입력된 값이 먼저 나오도록 하기.📌 코드 설계하기n값 받기for문 n만큼 돌면서 arr에다가 나이랑 이름 split 해서 저장하기최초 배열에다가 arr 추가최초 배열의 [x][0]으로 정렬하기!같은 수는 먼저 입력된게 알아서 나오지 않나.? (해봐야 알듯!)📌 개념 정리2차원 리스트 요소 출력하기한 리스트에서 요소 두 개를 꺼내서 저장하기a = [[10, 20], [30, 40], [50, 60]] for x, y in a: print(x,..

개발/python 2025.08.12

[백준 2309번] 일곱 난쟁이 - python

https://www.acmicpc.net/problem/2309📌 문제 탐색하기총 아홉 개의 수가 주어짐.일곱 명만 진짜 난쟁이7명의 총합이 100가능한 정답이 여러 가지인 경우는 아무거나 출력하고 총합이 100이 안 되는 경우는 없다.→ 7개를 더하기 보다는 9개에서 2개를 빼자!배열에 저장해서 sort하고 2개를 제거하면서 총합 100이 되는 경우를 찾자.📌 코드 설계하기for문으로 배열에 9개 값 저장하기배열 sort하기 및 100과 9개 값 총합 차이 구하기이중 for문 돌면서 2개씩 뽑아서 더한 값이 전에 구한 차이와 같은지 확인같을 경우 break!→ for문이 두 개라서 flag를 둬서 외부 for문 깨기📌 정답 코드arr = []for i in range (9): arr.app..

개발/python 2025.08.11

[Paper Review] τ -bench: A Benchmark for Tool-Agent-UserInteraction in Real-World Domains

0. Abstract기존 한계Language Agent가 사람 사용자와 상호작용하는 능력이나 domain-specific한 능력을 평가하지 않음.→ but, real world application을 위해서는 꼭 필요!제안τ -bench사용자 역할을 LLM이 대신하는 대화 시뮬레이션외부 API나 정책 가이드라인 등 규칙이 있는 환경에서 제공받은 agent의 능력 평가대화 후 db의 상태를 목표 상태와 비교하여 평가pass^kagent의 행동 신뢰도를 여러 번 반복 실행하여 평가할 수 있도록 새로운 평가지표 pass^k 제안결과GPT-4o와 같은 SOTA function calling agent 마저도 작업의 절반을 성공하지 못함.retail domain에서는 pass^8 수치가 25% 미만일 정도로 일관..

Paper Review 2025.07.28

[JS] 함수, this 이해하기

자바스크립트에서 함수를 선언하는 방법에는 몇 가지가 있다. 1. 기본적인 함수 정의에 대해서 알아보자.function greet(name){ console.log("hello " + name);}greet("alberto"); //hello alberto원시 자료형이 함수에 전달될 때는 참조가 아니라 값의 형태로 전달된다. 따라서 변경 사항이 전역적으로 반영되지 않는다. 반면, 객체나 배열을 함수에 전달할 때는 참조로 전달된다. 따라서 이는 해당 값에 대한 수정 사항이 원래의 객체에 반영됨을 의미한다. 예를 들어 보자.let myInt = 1;function increase(value){ return value += 1;}console.log(myInt); //1console.log(incre..

카테고리 없음 2025.07.01