본문 바로가기

with my rubber duck/codingTest44

백준 10798 세로읽기 파이썬 lines = []length = []# 5줄 input받기for i in range(5): line = input() lines.append(line) length.append(len(line)) #5개 문장중에서 제일 긴 것의 수 찾기string_to_return=""#제일 긴 문장만큼 반복문돌려서 문장당 글자 하나씩 순서대로 출력for i in range(max(length)): for idx,line in enumerate(lines): if(length[idx] > i): string_to_return += line[i] print(string_to_return)https://www.acmicpc.net/problem.. 2024. 5. 28.
토끼와 거북이 알고리즘 Floyd's Tortoise and Hare algorithm linked list 에서 이용할 수 있는 알고리즘으로 2개의 포인터를 사용한다. 하나는 한번에 2칸씩 이동, 하나는 하나씩 이동한다. 이 알고리즘을 통해 linked list에 loop강 없다면 해당 리스트의 중간지점을 찾는다거나 linked list안에 loop가 있는지 찾을 수 있다. 왜냐하면 loop가 있다면 두개의 노드는 언젠가는 만나게 되기 때문이다. 그리고 또 한가지 loop의 시작점을 알 수 있다. 어떻게 하느냐 두개의 노드를 2칸씩(fast pointer) 1칸씩(slow pointer) 이동시키다보면 둘은 만나게 된다. 그 시점부터 slow pointer를 head로 이동시켜 한칸씩 이동시키고 fast는 만나게 되는 지점부터 한칸씩 이동시킨다. 그렇게 서로 다른 지점에서 한칸씩 이동하다.. 2023. 8. 4.
bitwise operators bitwise operator num & 1 둘의 바이너리를 비교해서 끝의 숫자가 0인지 1인지 분별 1이 바이너리로 끝자리가 1이니까... 비교하는 숫자가 만약 홀수이면 끝자리가 1일것이므로 값은 1이 나올것이고, 짝수이면 0이니까 값은 0이 나올 것이다. 이걸로 짝수 홀수 구별 가능. 그리고 어떤수를 나누기2 하면 바이너리로는 비트들이 오른쪽으로 한칸씩 움직이는 거라서 num >> 1 이렇게 해주면 그 수의 나누기2의 값을 얻을 수 있다. https://leetcode.com/explore/learn/card/the-leetcode-beginners-guide/692/challenge-problems/4425/ Account Login - LeetCode Level up your coding skil.. 2023. 7. 12.
11399 ATM 그리디 문제를 풀자..~ https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net import java.util.Scanner; import java.util.Arrays; class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] times = new int[N]; for(int i = 0; i 2022. 9. 11.
그리디 알고리즘 공부하기 (feat.동빈나 이코테 강의) https://youtu.be/2zjoKjt97vQ 두번째 연습문제 풀기 내가 직접 풀어본 버전 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String line = sc.nextLine(); int result=Integer.parseInt(String.valueOf(line.charAt(0))); for(int i =1;i 2022. 7. 29.
[백준 10162]전자레인지 와 혼자 풀었따 https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStream.. 2022. 7. 28.
728x90