전체 글206 입력 클래스 정리 (Scanner, BufferedReader, StringTokenizer) 나는 java에서 보통 입력을 받을려면 Scanner로 사용하는걸로 알고있었다. 그렇지만 시간과 메모리에 아주 예민한 알고리즘 풀이에 있어서는 여러 방법들이 있다고한다. 첫번째로는 BufferedReader이다. BufferReader는 Scanner보다 더 빠른 퍼포먼스를 제공한다. 두번쨰로는 StringTokenizer이며, 해당 클래스는 특정 문자를 기준으로 나눠서 출력할 수 있는 클래스이다. === 기존 Scanner === (12번이나 호출해야함) 1 2 3 4 5 6 7 8 9 10 11 12 // 한줄 입력 for (int i=0;i 1 // s[1] = "2"; // s[2] = "3"; === StringTokenizer === (split과 비슷하게 특정 문자열을 기준으로 짜르지만 sp.. Programming/Java 2021. 9. 30. PS(Problem Solving) 에러와 디버깅에 관련하여.. PS란 보통 백준이나 프로그래머스와같은 온라인 문제풀이 사이트와 같은 곳에서 주어진 문제에 대해 제한된 시간과 메모리 내에서 문제를 해결하는 행위를 일컫는다고 한다. (여태 PS 란 단어 몰랐다가 요번에 백준에서 문제푸는데 런타임 에러가 자꾸 나서 이것저것 찾다가 첨 알았음) 아래의 사이트에는 PS 풀이 중 디버깅과 런타임 에러에 관련하여 좋은 정보를 정리해둔 글이다. 이 글을 보신분들은 한번씩 들어가셔서 보시면 좋을 것 같다. https://www.secmem.org/blog/2020/09/19/rte/ 모두 화이팅! Computer Science/etc 2021. 9. 29. C# Array.ConvertAll 의 편의성 백준에서 블랙잭 문제를 풀고나서 여러 사람들이 푼 걸 보다가 아주 좋은 문법을 알아냈다. Console.ReadLine()을 쓰면 string형으로 받게되는데, 보통 해당 값을 int형 배열에 넣어야 하는경우 string[]에 넣었다가 for문으로 int형으로 하나씩 파싱 해줬엇다. 근데 Array.ConvertAll를 쓰면 안그래도 된다. 가독성과 빌드 시간 측면에서 아주 좋은 함수인 것 같다! 아 그리고 var (N,M) 이것도 첨 본건데 두 줄을 나눠서 안쓰고 하나로 바로 끝낼 수 있어서 유용한듯 예제) using System; using System.Collections.Generic; using System.IO; using System.Text; using static System.Consol.. Programming/C# 2021. 9. 26. 백준 C# 2798번 - 블랙잭 방식 순서 1. N의 개수만큼 int[] num에 input2로 받은 string 값을 하나씩 넣어준다, (convertAll 써서 바로 int형으로 input2만들어줬어도 됐을듯?) 2. 3장의 카드를 골라 더한 값 중 M의 값을 넘지않고 최대한 가까운 값을 도출해야 하기때문에, 3중 for문을 사용하여 모든 경우의 수를 짜줬다. (ex : 0,1,2 -> 0,1,3 -> 0,1,4 ...) 3. 각 경우의 수마다 더한 값을 sum으로 놓고, if (sum Algorithm/Problem Solving 2021. 9. 26. C# HashSet<T> 중복제거 1. 수학과 같은 연산을 할 때 사용한다. Ex ) 집합 형식을 사용할 때 사용 https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.hashset-1?view=netcore-3.1 HashSet 클래스 (System.Collections.Generic) 값 집합을 나타냅니다.Represents a set of values. docs.microsoft.com 2. 중복제거할때 용이함 해당 아래의 예제는 HashSet의 예제로 작성했으며, 해당 경로에 있는 메모장의 Text에서 한줄 씩 ReadLine으로 받아 중복값을 제거하는 로직이다. 앞으로 HashSet은 중복제거할 때 자주 써먹자 using System; using Syste.. Programming/C# 2021. 9. 26. 백준 C# 2231번 - 분해합 나는 문제를 읽고 처음에는 공식을 찾고자 많은 방법을 시도해봤지만, 결국 답을 구하는 명확한 공식은 없을거다 생각하고 순서대로 작성 해보기로했다. 방식 순서 1. 자연수 N이 주어지니 자연수는 1~9이다. 그렇기때문에 count를 입력값의 길이만큼 9를 곱했다. 2. List에 compare_val의 값을 한자리 수 씩 넣어준다음 해당 List안의 값들을 모두 sum했다. 3. 문제에는 for문으로 풀었지만 설명하자면 while(input = compare_val + sum)의 조건이 성립한다면, compare_val을 sum_list의 List에 추가해준다. 4. sum_list에 넣는 이유는 문제의 생성자가 하나가 아닐 경우가 있고, 그 중에서 최솟값을 찾기 위함이다. 5. sum_list에서 Lis.. Algorithm/Problem Solving 2021. 9. 26. 이전 1 ··· 18 19 20 21 다음 💲 많이 본 글