-
Notifications
You must be signed in to change notification settings - Fork 0
2025‐08‐22 회의록
김누리 edited this page Aug 22, 2025
·
1 revision
** 참여자 : 강성욱, 김나은, 김누리,이상억
** 불참 :
<백준>
- 랜선 자르기
<프로그래머스>
- 숫자 카드 나누기
- 점 찍기
- 네트워크
- 영어 끝말잇기
- 행렬의 곱셈
- 단어 변환
- 전화번호 목록
나은님 > 이상억님 > 김누리 > 강성욱
<백준>
- 랜선 자르기 : 2진 탐색이 먼저 안떠올랐음. 제안 사항을 봤을 때 1씩 증가 시키는건 말이 안됨. 지수를 증가하는 방식도 생각해봤지만 놓치는 부분도 많이 있을거 같아 인공지능의 도움을 받아 이진 탐색임을 알게 됨
<프로그래머스>
- 숫자 카드 나누기 : 유클리드 호제법을 안쓰고 풀라 했지만, 시간초과 날 확률이높아 인공지능의 도움을 받음. 유클리드 호제법을 채택하지 않으면 타임아웃 날 확률이 높다 해서 유클리드 호제법 채용
- 점 찍기 : 평면에서 거리계산 문제. x의 제곱만큼 빼서 제곱근화 하는 방식으로 문제 풀이
- 네트워크 : 설명이 복잡하지 않아서 파악은 쉬웠음. 정답 난이도가 낮은 일부 dfs보다도 평이했음
- 영어 끝말잇기 : 단어들을 Set에 등록 후 문제에서 요구하는 대로 진행
- 행렬의 곱셈 : 행렬의 곱 공식 이용해서 풀이 진행.
- 단어 변환 : 네트워크 문제 처럼 문제에서 요구하는게 명확해서 dfs를 채용
- 전화번호 목록 : Set에 등록 후 반복문해서 풀이
<백준>
- 랜선 자르기 : 범위 넓고, 확인할게 많아 이진탐색 채용
<프로그래머스>
- 숫자 카드 나누기 : 약수 리스트 구하고, 시나리오대로 반복 해서 풀이.
- 점 찍기 : sqrt로 제곱근 방식
- 네트워크 : dfs, bfs 둘 다 가능하지만, Unionfind 라는 알고리즘을 찾아본 기억이 있어 해당 알고리즘 채용
- 영어 끝말잇기 : map 채용. 문제대로 반복문 돌리면서 풀이.
- 행렬의 곱셈 : 공식 찾아 본 후 시나리오 화 진행
- 단어 변환 : bfs 채용. 목적지를 향해서 한 단어씩 변환해 가며 풀이.
- 전화번호 목록 : 오름차순 정렬 후 startsWith() 문법 채용.
※ 총평 : 쉬웠음....
※ 질문 : LinkedHashMap, HashMap은 k-v 구조의 자료구조, 노드간 연결이 되는 해쉬 맵이다.
<프로그래머스>
- 영어 끝말잇기 : for문을 이용해서 풀었는데 일단 통과 되었었음. 그러나 효율성을 생각해 보니 다른 방식이 있을 거 같아 ai나 구글링을 해서 HashSet을 채택해서도 구현해봄
- 행렬의 곱셈 : 3중 for문을 쓰면서 일부 계산에서 헷갈리는 부분이 있었음
※ 총평 : 아직은 다 풀지 못하지만, 생각보다 gpt 를 채택하면 혼자 풀이 할 수 있는 문제들이 많아진듯. 그러나 혼자 풀기에는 좀 어려움
김누리 :
※ 지난주 질문에 대한 답변 :
비트 시프트 시, 오른쪽 시프트 하면 어떻게 작동하나? 우측 비트 시프트 시, n/2 로 계산됨. 예를들어 십진수로 10인 경우 이진수로 표시하면 1010(2) 지만, 우측 비트 시프트를 하게 되면 0101(2) 가되고 이를 십진수로 표현하면 (02^3 + 12^2 + 02^1 + 12^0) 이므로 5가 됨. 반대로 좌측 비트 시프트를 하게 된다면 1010(2) => 10100(2)가 되며 이를 십진수로 표기하면 (12^4 + 02^3+12^2+02^1+0*2^0) 으로 20이 됨
즉 비트를 우측으로 시프트 하면 n/2 계산, 좌측으로 시프트 하면 2*n 계산이 됨을 알 수 있음.
다만 정수 타입에만 이용 가능하며, float, double 형태의 타입에는 이용할 수 없음.
<백준>
- 랜선 자르기 : 문제 이해에서 좀 해맴. 랜선길이를 나눌 때, 나눠야 할 랜 선 길이가 주어지지 않았는데.. 어떻게 구하지??? >> AI 상담 해 보니, 이진 탐색 하면서 중앙값을 구한 뒤 중앙값 가지고 랜선 자를 갯수를 풀이하면 된다고 도움 받음
<프로그래머스>
- 숫자 카드 나누기 : i = 1 부터 해서 i를 계속 ++ 하며 풀이를 진행하면 될 줄 알았지만, 타임아웃 나올것 같았음. 인공지능 도움 받아보니 유클리드 호제법(gcd) 방식을 채용하면 된다고 도움 받음
- 점 찍기 : 처음에는 bfs 방식으로 큐를 쓰면 되는줄 알았지만, 터질 각이 보여서... sqrt(스쿼트, 제곱근)을 쓰며 진행.
- 네트워크 : dfs 문제. 단순히 각 노드별 연결 여부 확인하면 되는 문제
- 영어 끝말잇기 : set을 써도 되지만, set 풀이 방식은 이전에 인공지능 도움받아서 풀었기 때문에 다른 방법으로 풀이함. 입력값 범위가 그렇게 크지 않기 때문에 그냥 2중 for문 써도 무방함.
- 행렬의 곱셈 : 이거는 3중 for문 채용. 행렬의 곱셈 공식을 구현하려면 어쩔 수 없었음....
- 단어 변환 : 시작 단어, 0(변환 횟수)를 큐에 넣으며 bfs 방식으로 풀이 진행
- 전화번호 목록 : 배열을 정렬 한 뒤, startsWith()문을 통해 구현하면 됨
※ 총평 : 이번주는 dfs 및 bfs 패턴이 많았던거 같음
라이브 코테 문제 <백준>
- https://www.acmicpc.net/problem/1244 [스위치 켜고 끄기]
- 단기 코스 수강으로 인해 다음주 부터 09시 스터디는 어려울 수 있음. 그렇기 때문에 추후 카톡으로 일정 조정 필요.
- 일단은 라이브 코테 문제는 PR로 올려두기로...