본문 바로가기

분류 전체보기312

정보과학회 kcc 2025(한국 컴퓨터 종합 학술대회) 후기 요즘 블로그를 많이 못썼다..회사일이라 함부로 글 못씀 + 이것저것 취업준비를 하다보니 이전보다 쓸 것이 많이 줄었다ㅜ모든게 끝나면 썰들을 많이 들고 오겠다! 오늘은 비록 갔다온지는 꽤 됐지만..정보과학회 kcc에서 논문 발표한 후기를 작성해보려고 한다. 위치위치는 제주 국제컨벤션 센터였다.학교에서 비행기값이랑 숙소값, 식비는 모두 지원해주셨다(감사합니다) 포스터우리는 박사님께서 보내주신 기본 양식을 바탕으로 논문에 대한 포스터를 만들었다.논문 포스터에는 정말 기본적인 내용만 핵심적으로 담았다.주로 그래프 등의 시각자료를 크게 넣어서 한눈에 이해하기 쉽도록 하였다. 가면 포스터를 붙이는 판(?)이 있다. 이 때 자신의 포스터 발표 장소 번호를 잘 찾아서 준비한 포스터를 붙이면 된다.우리는 테이프를 준비.. 2025. 8. 25.
백준 [자바 java] 1522 : 문자열 교환 https://www.acmicpc.net/problem/1522 이 문제는 최소한의 횟수로 노드를 교환하여 같은 문자열끼리 나열되도록 하는 문제이다 처음엔 bfs로 풀어야하나(그놈의 bfs...)했는데 아무리 생각해도 너무 오래걸린다고 생각했다.알고보니까 슬라이딩윈도우라는 알고리즘으로 풀어야한다고 한다.슬라이딩 윈도우는 네트워크 할 때 봤다!탐색해야하는 배열의 범위가 주어진다면 처음부터 끝까지 한칸씩 이동하면서 가능한 배열의 가짓수를 모두 탐색하는 것이다. 여기서는 모든 a가 일렬로 나열되어야하므로, a의 갯수만큼 탐색을 해주었다. aabbbaba 이런 배열이 있으면 여기서는 a가 4개이다.(aabb)baba 이 경우는, b가 윈도우 내 2개이므로, 2번 교환을 해야한다.a(abbb)aba 이 경우는 .. 2025. 6. 29.
백준 [자바 java] 2531 : 회전초밥 https://www.acmicpc.net/problem/2531 이 문제는 위와 같은 회전초밥집의 규칙이 있을 때 사용자가 먹을 수 있는 초밥의 최대 가짓수를 구하는 문제이다.처음에는 해시셋을 사용했는데, 생각해보니 특정 숫자가 2개 이상인 경우, 셋에서 아예 빼버리면 반례가 발생하게된다.따라서 해시맵을 통해 각 숫자별로, 등장 횟수를 저장하는 방식으로 구현했다. 풀이HashMap h = new HashMap();for(int i = 0;i일단 0부터 K-1까지 해시맵에 넣었다(초기값)그 다음 서비스로 주는 초밥 번호까지 맵에 넣은 후 for(int i = 1;i 1부터 n-1까지 순회한다.i-1(현재 집합에서 제외되는 부분)은 맵에서 제거하고, (i+k-1%n), (새로 집합에 들어가는 부분)은 해.. 2025. 6. 29.
백준 [자바 java] 2138 : 전구와 스위치 https://www.acmicpc.net/problem/2138처음에는 bfs로 풀어야하나 했는데 그렇게 하니까 너무 경우의 수가 많았다.알고보니 그리디를 사용하는 문제였다.앞에서부터 천천히 조건에 부합하기 위한 선택을 해나가면 된다. 그런데 0번 전구 스위치를 누르냐 마냐를 미리 결정하지 않으면 많이 복잡해진다.따라서 나는 0번 스위치를 누르는 경우, 누르지 않는 경우를 나눠서 진행했다 풀이char[] ori = br.readLine().toCharArray();char[] com = br.readLine().toCharArray();char[] nowOri = Arrays.copyOf(ori,n);먼저 원래의 문자열과 바뀐 후의 문자열을 입력받는다.처음에는 nowOri = ori 이런식으로 카피를 .. 2025. 6. 29.
백준 [자바 java] 12919 : A와 B 2 https://www.acmicpc.net/problem/12919이 문제는 보자마자 bfs를 이용해서 풀어야겠다! 라고 생각했다.그래서 생각한대로 풀었는데 시간초과가 났다.. 알고보니까 나는 S를 T로 만들어가는 과정에서 BFS를 사용했는데, T를 S로 바꾸는 과정에서 BFS를 사용해야 효율적이다.왜냐하면 S를 T로 만들어가는 과정은 모든 경우의 수를 다 탐색하는데 , T를 S로 바꾸는 과정은 A가 뒤에 있을 때에는 A를 빼고, B가 앞에 있을때에는 B를 빼고 순서를 뒤바꾸는 과정만 거쳐도 정답을 도출할 수 있다. 앞으로 이런 문제가 나오면 탑다운 방식으로 풀것인지, 바텀업 방식으로 풀것인지 생각을 해야할 것 같다. import java.io.*;import java.util.*;import java... 2025. 6. 28.
백준 [자바 java] 20920: 영단어 암기는 괴로워 https://www.acmicpc.net/problem/20920단어가 주어지고, 각 조건을 만족하는 순서대로 출력을 해야한다.처음엔 실버 3문제라 쉽게 풀릴거라고 생각했는데 생각보다 쉽지 않았다.이 문제는 java의 유용한 라이브러리를 많이 써야하는 문제였다. 해설for(int i =0;i=m) map.put(arr[i],map.getOrDefault(arr[i],0)+1);}단어를 입력받을 때, 단어가 조건의 길이를 넘기면 해시맵에 해당 단어를 넣는다.이때 value값은 해당 단어가 나온 횟수이다. map에 이미 단어가 존재한다면 그 value를 꺼내서 1을 더해 다시 넣어주고, 아니면 1을 넣어준다나는 보통 이럴 때 contains 함수를 사용했는데 getOrDefault 함수를 쓰니 더 편리하다.. 2025. 6. 28.