본문 바로가기

코딩테스트9

LSCS 구하기 LSCS는 Largest Sum of Contiguous Subarray의 약자로, 연속된 부분배열의 합들 중 가장 큰 합을 의미합니다. 연속된 부분 배열이란 예를 들어서 전체 배열이 {1, 2, 3} 인 경우에 {1}, {1,2}, {1,2,3}, {2}, {2,3}, {3} 과 같이 인접한 원소들로만 이루어진 집합을 의미합니다. 이 배열의 LSCS는 부분배열 {1,2,3}의 원소의 합인 6이 됩니다. 원소들이 0이상의 정수라면 단순히 모든 원소를 다 더하면 LSCS가 되겠지만, 음수가 포함되는 경우는 조금 다른 결과가 나올 것입니다. 위의 문제를 만났을 때 배열의 index를 포인터 삼아 포인터를 옮겨가며 모든 부분배열 원소의 합을 각자 구한 뒤, 그 중에서 가장 큰 값을 구하는 방법을 사용했습니다... 2022. 7. 28.
Integer 나눗셈 시 소수점도 나타나게 하기 매번 헷갈려서 적어놓는 Integer끼리 / 연산자로 나눌 때, 소수점도 나타나게 하려면! int a = 1; int b = 3; //(double)로 캐스팅 해주어야 함! double result = (double) a / b; (double) casting을 하지 않으면 원하는 대로 값이 나오지 않는다. 그리고 소수점 자리수를 설정하려면! //"%.2f" String.format("%.2f", result); String.format("%.nf", 숫자); 이렇게 할 수 있다. n에 소수점 몇째 자리까지 할 지 숫자를 설정하면 됨 참고자료 https://www.wikihow.com/Divide-in-Java-with-Decimals#:~:text=If%20you%20need%20to%20divide,.. 2022. 6. 8.
countAllCharacters 문자열을 입력받아 문자열의 각 letter를 key로 갖고 letter가 등장하는 횟수를 value로 갖는 HashMap 를 return 하는 문제. (입력받은 문자열이 빈 문자열인 경우에는 return null) 예시. "apple" 을 입력받았다면 {a = 1, p = 2, l = 1, e = 1} 을 반환 나의 풀이 또 다시 완전 탐색과 double for loop으로..ㅎㅎ 그래도 나름대로 중복된 key는 갖지 않는 Map의 특성을 이용했다는 점에서, 그 동안 사용해 보지 않은 새로운 방식을 하나 이용했다는 게 성장점인 것 같다. 물론 return type 자체가 HashMap인 것도 있지만! public HashMap countAllCharacter(String str) { //TODO.. if.. 2022. 5. 18.
[백준] 4673셀프넘버-Java 내 풀이 public class 셀프넘버 { public static void main(String[] args) { //전체 수 int[] wholeNum = new int[10000]; for(int i = 0; i < 10000; i++) { wholeNum[i] = (i + 1); } //d 수 int[] dNum = new int[10000]; for(int j = 0; j < 10000; j++) { dNum[j] = d(j); } //비교 for(int a = 0; a < 10000; a++) { int noDNum = 0; int count = 0; for(int b = 0; b < 10000; b++) { if(wholeNum[a] == dNum[b]) { count += 1; } } i.. 2022. 5. 11.
Bitwise Operator(비트 단위 연산자) 비트 단위 연산을 위한 연산자가 따로 존재한다. 먼저 비트는 이진수로 0 또는 1의 값을 갖는다. 비트 단위 연산이란 이진수의 각 비트 값을 연산하는 것을 의미한다. 위의 그림에 나온 이진수를 예로 들자면, 01010010 이라는 이진수의 각 비트마다 (0,1,0,1,0,0,1,0) 모종의 연산을 수행하는 것이다. Swift에는 NOT, AND, OR, XOR, Shift 연산자가 있다. (Java도 거의 동일한 것 같았다.) 1. NOT 연산자 (~) : 0과 1이 반대되는 수를 반환한다. (1의 보수에 해당한다.) ~0101 = 1010 이 되는 셈이다. 예를 들어서, 정수 5에 NOT 연산자를 사용하면 (~5) 이는 ~0101으로 인식이 된다. 그러면 0101에서 0과 1을 반전시킨 수인 1010이.. 2022. 4. 15.
[Swift] 1712 손익분기점 참고: Swift로 알고리즘 문제를 풀 때, 공백을 사이에 두고 입력값이 다수 제시되는 경우에 1 let input = readLine()!.split(separator: " ").map { Int($0)!} cs 와 같이 입력값을 받아 input이라는 array에 값을 넣을 수 있습니다. 예를 들어, 입력되는 값이 1 2 3 4 5 이고 위와 같이 코드를 작성하면 input = [1,2,3,4,5]가 됩니다. 1712 손익분기점 문제: 제출한 답변: 1 2 3 4 5 6 7 8 9 import UIKit let input = readLine()!.split(separator: " ").map { Int($0)!} if input[1] >= input[2] { print(-1) } else { print.. 2022. 2. 9.
반응형