나를 기록하다
article thumbnail
[TIL-11 / 230629] 이분 탐색 알고리즘, 깃허브
TIL 2023. 6. 29. 23:41

1. 오늘의 고민 오늘은 알고리즘 공부 방향에 대한 생각에 많은 시간을 투자하였다. 인터넷을 찾다가 본 누군가의 말로 알고리즘을 파이썬으로 시작하였고, 공부는 성향상 백엔드가 적성에 맞아 자바, 스프링을 배워 백엔드 개발자가 되고자 한다. 그래서 최근에는 알고리즘 공부를 파이썬과 자바 두가지 언어로 모두 시행하고 있었는데, 시간적 여유가 없는 현 상황에 선택을 해야한다는 판단을 내렸다. 그래서 여러번 서칭하고 고민하다가, 당장 파이썬으로 풀 때보다 번거롭고 힘들더라도 내가 주력언어로 삼고 싶고 공부하고 있는 자바로 해야겠다는 결론을 내릴 수 있었다. 많은 사람들이 말하길, 언어는 수단이라고 한다. 한가지 언어를 깊게 공부하고 습득하면 다른 언어는 배우기가 쉬운 구조라고 한다. 나는 아직 자바, 파이썬 무..

article thumbnail
[Python] 랜덤함수
기타/Python 2023. 6. 23. 11:39

알고리즘 문제를 풀다가, 자바의 random 함수에 익숙해져서 파이썬의 랜덤함수들이 헷갈려서 블로그에 정리하기로 했다. 파이썬(Python)에서의 랜덤함수 우선 랜덤함수를 사용하기 위해서는 import random을 하여야 한다. import를 하고 random.을 찍으면 사용할 수 있는 함수들이 나온다. 1. random.random(): 0.0 이상 1.0 미만의 무작위 실수(float)를 반환 [0.0, 1.0) 2. random.uniform(a, b): a 이상 b 이하의 무작위 실수(float) 반환 [a, b] 3. random.randint(a, b): a 이상 b 이하의 무작위 정수(int) 반환 [a, b] 4. randrange(start, stop, step): start 이상 st..

article thumbnail
[백준 1316 파이썬(python)/자바(java)] 그룹 단어 체커
Algorithm/baekjoon 2023. 6. 21. 19:24

1. 문제 접근 처음 이 문제를 보고 바로 풀지 못하였다. 정렬을 사용해야 하나? 라는 생각을 했지만, 정렬로는 떨어져서 나타나는 단어를 구할 수 없었기에 넘어갔고, 그 다음으로 입력을 배열의 형태로 받아서 각 단어를 비교하는 방법을 생각했지만, 그것 또한 아니었다. 그리고 생각한 결과, 문제는 의외로 간단하였다. 예를 들어, abcdef라는 단어가 있다고 가정하자. a와 b를 비교하여 두 단어가 다르다면, b부터 끝까지인 bcdef를 새로운 단어로 저장하고, bcdef 안에 a가 있는지를 확인하면 된다. 확인 후 a가 존재하지 않는다면 그룹 단어에 1을 더하고, a가 존재한다면 그 단어는 그룹 단어가 아닌 것이다. 2. Python n = int(input()) # 입력받을 문자의 개수 group_wo..

article thumbnail
[백준 1181 파이썬/python] 단어 정렬
Algorithm/baekjoon 2023. 6. 11. 23:24

1. 첫번째 풀이(실패) 이 문제는 처음에 쉬워보여서 바로 시도하였으나, 런타임에러로 실패하였다. 처음에 제출한 코드는 다음과 같다. import sys input = sys.stdin.readLine n = int(input()) lst = [] for i in range(n): lst.append(input().strip()) lst = list(set(lst)) lst.sort() lst.sort(key = len) for i in lst: print(i) 실패 원인 sys.stdin.readLine() 함수를 사용하여 입력을 받을 때, 전체 입력을 한 번에 처리하기 때문. 입력이 많은 경우 처리 시간이 길어질 수 있다. 시간을 줄이기 위해서는 입력을 한 줄씩 처리해야 한다. 2. 두번째 코드(성공..

article thumbnail
[백준 10250 자바/java] ACM 호텔
Algorithm/baekjoon 2023. 5. 26. 23:35

문제 설명 이 문제는 손님들을 온 순서대로 엘리베이터에서 호수까지 가깝게 층수가 h까지고 동수가 w까지인 호텔에 배치하는 것이다. 그리고 거리가 같을 때는 아래층을 선호하기에 1호 라인의 101부터 h층까지 순서대로 채우고 다 채우면 2호라인 순으로 나아가면 된다. 따라서 w는 고려하지 않고 입력받은 h와 n만을 이용하여 문제를 풀 수 있다. 풀이과정 효율적인 입출력을 위해 BufferedReader와 InputStreamReader를 통해 문자열 데이터를 입력 받는다. 이 과정을 위해서는 IOException 예외를 처리해준다. 문자열의 효율적인 처리를 위해 StringBuilder 객체를 선언한다. t를 입력받고 for문 안에 StringTokenizer 객체를 생성하여 공백을 기준으로 h, w, n..

article thumbnail
[백준 4153 자바/Java] 직각삼각형
Algorithm/baekjoon 2023. 5. 25. 23:34

문제 설명 직각삼각형이 되기 위한 조건은 주어진 세 변의 길이가 각각 x, y, z이고, 가장 큰 변의 길이를 x라고 했을 때, x^2 = y^2 + z^2(피타고라스 공식)이 성립하는 것이다. Scanner 대신 효율적인 방법을 풀어보기 위해 BufferedReader와 StringBuilder를 활용하였다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReade..

profile on loading

Loading...