리스트의 사이즈는 n시작값은 x증가하는 step도 x<예상>1\. 사이즈를 n으로 할당2\. n번의 for문을 돌면서 3\. 한 바퀴에 x값만큼씩 증가(곱셈)하면 될듯한데..초기 세팅에 var answer = longArrayOf()로 선언되어있는데 이걸 바꿔도
String을 뒤에서 몇번째, 앞에서 몇번째씩 자를 수 있는 것으로 기억한다. (아마도 substring..?)그렇다면 맨 뒤 4자리를 잘라서 다른 변수에 저장해두고 스트링의 길이를 구해서 길이에서 4를 뺀만 갯수만큼 \* 로 채우면 되지않을까?입력받은 전화번호(Str
오늘은 한문제 더. 이 문제도 그리 어려워 보이진 않는다.근데 입출력 예시에는 이런식으로 되어있는데.. solution 초깃값에는 파라미터x가 Int형으로 되어있다...아무걸로나 해도 상관이 없는건가? 일단 Int형 그대로 풀어보자.Int로 받은 두자리 수의 첫째 둘째
다른 사람들의 풀이를 보다가 단단히 잘못되었다는 걸 알았다.나는 자릿수를 각각 구해서 나중에 더해주는 방식으로 하려다 보니 쓸데 없이 형변환이나 subString 같은 잡다한 것들이 많아졌다. 그냥 마지막에 나머지를 비교할 때 쓸 자릿수들의 합을 담은 변수 하나만 있으
반복문을 얼마나 잘 중첩하여 깔끔한 조건으로 결과를 얻어내냐가 관건일 것 같은 느낌이다. 짝수 홀수 나누는건 어렵지않고, 맨 마지막에 쓰여있는 '작업을 500번 반복했을때의 이게 좀 골치 아프겠다. `while`문으로 입력받은 값이 1이 될때까지 돌리기 그 안에
학교 다닐때 이후에 정말 오랜만에 들어보는 최대공약수와 최소공배수 ㅋ.ㅋ 두 수를 가지고 그것들을 구하는 연산만 알아내면 어렵지 않게 풀 수 있을 것 같다. 무슨 공식이 있었는데... 도와줘 구글..유클리드 호제법? 검색하니까 이게 나왔는데 너무 낯설다 ㅋㅋㅋㅋㅋ 내가
홀수일때는 입력받은 String의 길이를 구하고 substring으로 길이/2 위치(인덱스는 0부터 시작이니까)의 글자를 리턴? 짝수일때는 길이/2, 길이/2-1 위치의 글자를 리턴?더 좋은 방법이 있겠지만 일단 생각대로 해보자면입력받은 String의 길이를 구한다.i
너무 쉬어서 고민할 필요도 x바로 레고레고테스트도 바로 레고레고통과\~~
일단 조건문으로 길이 4,6일때만 true이게 만들고 그 안에서 s의 원소가 모두 Int일 때만 다시 true를 리턴해주도록 만들면 될듯 한데, 원소가 모두 Int인지 확인하는 절차가 좀 헷갈린다.. 내생각엔 if문으로 s.length가 4나 6일때 for문으로 s
반복문을 돌려서 각각의 배열에 저장한뒤 순서를 뒤집고 다시 컨버팅을 해야하나 생각했다.분명 간단하게 순서를 뒤집거나 정렬하는 방법이 있을 것 같다. 도와줘 구글.. sorce : https://kotlinlang.org/api/latest/jvm/stdlib/
아무래도 쉽지 않을 것만 같다.. 일단 생각으로는 split으로 각 단어를 나누고 그 안에서 인덱스로 구분하여 짝수는 대문자 홀수는 소문자로 바꿔주고 다시 더하는 것.. 근데 좀 복잡하고 쓸데 없는 과정이 길어질 것 같다. 대문자 소문자로 바꿔주는 함수부터 일단 찾아보
내가 알기로는 정수형이나 배열등의 순서를 뒤집어주거나 오름차순, 내림차순으로 정렬해주는 함수가 많이 있다. 그런 것들을 사용하면 생각보다 간단한 문제일지도? 하지만 걸리는게 하나있다면 입력타입이 Long인데 출력타입이 IntArray... 기본적으로 주어진 answer
약수를 구하는 알고리즘을 생각해내면 끝나는 문제이다. 그렇담 정확히 약수란 무엇일까? source : https://ko.wikipedia.org/wiki/%EC%95%BD%EC%88%98두 수를 곱해서 정수 n이 나오면 약수이다(?) 그 말인즉슨 정수 n을
입력받은 n이 짝수면 을 2로 나눈만큼 '수박', 홀수면 거기에 + '수'... 끝..?일단 레고레고근데 하다보니까 조건문이 앞에, 반복문이 뒤에 나오는게 맞는 것 같다.for문으로 answer에 n/2만큼 '수박'을 더해준다.if문으로 짝수, 홀수를 나눈다.2-1.
반복문으로 seoul 배열에 담긴 원소를 하나씩 빼면서 그중에 'Kim'이 나올때의 count를 "김서방은 x에 있다"의 x에 넣으면 될 것 같다.count변수 하나 만들어준다.for문으로 seoul 배열의 원소를 하나씩 뺀다.for문 안에 if문으로 빼낸 원소를 "K
그냥 sorted()같은 함수로 알파벳도 정렬이 되는건가...?아니면 알파벳을 순서대로 정렬해주는 함수가 따로 있나...?찾아보자 일단..! source : https://notepad96.tistory.com/entry/Kotlin-8 sortDescedin
너무 쉬운 문제라서 스킵
입력받은 어레이의 원소를 하나씩 빼고 divisor로 나눠지는 값들을 빼서 새로운 배열에 저장하고 오름차순으로 정렬...? 일단 해봐야 좀 더 알 수 있을 것 같다.반복문으로 array에서 element를 하나씩 빼낸다.빼냄과 동시에 divisor로 나눴을때 나머지가
이 문제를 낸 의도가 '해당 요일을 구하는 로직은 만드는 것' 인지 ' 이 문제를 어떻게든 풀어내는 것 ' 인지 모르겠지만, 직접 요일을 구하는 방법은 의미없는 반복들이나 쓸데 없는 과정들이 많아질 것 같다.아마 Calendar라는 함수를 쓰면 충분히 가능할 방법이 있
문제가 길면 일단 풀기 싫어진다.. 복잡해 보이기도 하고 배열이 많아지면 연산이 어지러워져서 거리낌이 생긴다. 일단 이중배열 안의 원소들을 접근해서 그것을 가지고 주어진 array의 원소를 가져오는 것 같다.차근차근 하다보면 답이 나올테니 slice를 이용하여 찬찬히
생각나는 방법은 두가지 정도이다.소문자, 대문자가 들어간 배열을 만들고 인덱스로 답찾기.아스키 코드로 숫자 연산해서 답찾기.일단 둘다 해봐야겠다.. 첫번째 방법은 인덱스를 사용하려고 형변환도 많이 해야하고 굳이 배열두개도 만들어줘야 하기때문에 별로인 것 같다. 두번째
일단 정렬이니까 sort()에서 파생된 함수 중에 하나를 사용해야 할 것 같다. 먼저 입력받은 strings를 오름차순으로 정렬하고 n인 인덱스를 이용해서 정렬하면 될 것 같은데 더 좋은 방법이 있을 수 도 있으니 구글에서 좀 찾아보자. source : https&#x
반복문을 통해서 각각의 원소들을 한번씩 다 더하고 중복만 제거해주면 될 것 같은데, 하다보면 또 말처럼 쉽지않을 것 같다. 일단 해보자.첫번째 반복문으로 입력받은 numbers에서 인덱스와 함께 원소의 값을 꺼낸다.그 안에 중첩 반복문으로 다음 원소부터 마지막 원소까지
전체 학생수로 배열을 만들고 잃어버린 학생들을 -1, 여분이 있는 학생들을 +1 해준 뒤 앞뒤 학생을 비교해서 빌려주면 -1, 받으면 +1 해주는 식으로 코드를 구성해 보았다.각 원소가 모두 1이고 사이즈가 n인 새로운 배열을 만든다.lost에 담긴 숫자의 인덱스는
반복문을 돌려서 price에 1씩 늘린 수를 곱해주고 money와의 차이를 구하면 될 것같다.추가로 금액이 부족하지 않으면 0을 리턴해주자. 약간 마음에 걸리는게 있다면 입력은 Int형이지만 출력은 Long형태라는 것... 일단 해보자for문으로 count만큼 1씩 증
최댓값을 편하게 얻어낼 수 있는 list를 두개 만들고, 반복문으로 가로길이와 세로길이를 비교하여 하나에는 큰 수들을, 다른 하나에는 작은 수들을 뽑아낸다. 그러면 큰수들과 작은수들이 담긴 새로운 리스트가 생기고 각 리스트에서 최댓값을 뽑아 곱해주면 끝이다. 해보자.큰
일단 총 단계를 좀 나누어보면10진수를 3진수로 -> 앞뒤 반전 -> 다시 10진법으로이렇게 세단계이다. 그러므로 10진수를 3진수로 바꾸는 것만 해결하면 큰 어려움이 없을 것 같다.나머지를 담을 array()인 a와 몫을 임시로 담으면서 계산할 b를 만든다.반복문으로
너무 쉬어서 과정은 패스..
left와 right의 약수의 갯수만 구하면 조건문을 써서 짝수일때 더하고 홀수일때 빼주는 간단한 문제인 것 같다. 일단 과정을 정리해보자.약수의 갯수가 짝수인지 홀수인지를 판별하기 위하여 갯수가 담길 변수 cnt를 하나 만든다.범위가 left에서 right인 반복문을
이 문제도 너무 쉬우니까 그냥 풀자.테스트도 바로
이 문제도 너무 쉬워서 패스..
코드 챌린지 문제들은 아무래도 좀 쉬운편인 것 같다.
반복문을 세번 돌려서 세가지 숫자들을 빼내는 식으로 모든 조합의 경우를 구하고 각각의 숫자들을 더한다음 소수인지 판별하면 될 것 같기는 한데, 반복문을 돌리는 구조가 잘 떠오르지 않는다.https://hkoonsdiary.tistory.com/126구글을 좀
1 스테이지부터 각 스테이지에 머무르는 사람들을 구하고 남은 사람들로 나누어서 실패율을 구하고 정렬해서 인덱스를 뽑으면 끝...? 일단 그렇게 어려워 보이지 않으니까 일단 해보자.머무르는 유저를 담을 변수 user, 그 변수를 담을 배열 lose, 남은 인원을 계산
![](https://images.velog.io/images/pinocchio22/post/df8c393a-1d39-4b4d-9dcf-9f1e3d374592/image.png
어제 런타임 오류와 온갖 테스트 실패를 맛보고 오늘은 이 문제에서 많은 사람들이 사용하는 stack을 이용하여 코드를 새로 갈아엎으려 했으나 어제 날린 시간이 아까워서 정확한 문제라도 찾자는 생각으로 코드를 좀 더 만져봤다.일단 특정 테스트 케이스에서 문제가 발생하는데
입력받은 숫자들의 인덱스(숫자 -1)을 3으로 나누어서 위치를 판별하고 *과#만 따로 처리하면 될 것 같다는 생각을 했는데 가운데 줄의 숫자가 눌릴때 거리가 가까운 손으로 누르는 과정이 잘 떠오르지를 않는다. 인덱스와 값을 같이 사용하여 인덱스를 어떤 연산에 의해
입력받은 문자열의 원소를 하나씩 빼서 새로운 문자열에 저장하다가 주어진 영단어를 포함하게 되는 시점(ex. 첫번째 : 1 , 두번째 : 17 , 세번째 17o , 네번째 : 17on , 다섯번째 : 17one일때 다섯번째)에 매칭된 영단어의 크기만큼 뒷자리를 제거하고
카카오 문제인데 그림이 없고 글자만 가득해서 시작부터 풀기가 싫다. 그래도 좋은점은 이번 문제에는 순서가 있다는 것. 차근차근 단계별로 해결하다보면 금세 해결할 수 있을 것 같다.바로 레고레고그냥 조건에 맞춰서 조건문만 달아준 느낌이지만 특별히 쓸데없는 코드는 없는 것
이번문제는 좀 쉬워보이면서도 어려워보인다.. 말로 이해하려니까 쉽지가 않네.. 예시를 계속 읽다보니 대충 문제는 이해를 했다. 유저별로 신고한 유저를 새롭게 정리하고 그중 k 이상의 신고를 받은 정지ID 목록을 만들어서 비교하는식?으로 하면 될 듯하다. 순서를 다시 보
이제 레벨1의 문제를 다 풀어서 레벨2로 넘어왔다. 다시 쉬운 연습문제들을 몇 문제 풀어보자.행렬곱셈이 어떤 구조로 돌아가는지만 다시 살펴보고 문제를 풀어야겠다. source : https://ko.wikipedia.org/wiki/%ED%96%89%EB%A
최소공배수나 최대공약수를 구하는 문제가 종종보이는데 GCD(Greatest Common Divisor)라는 이름으로 함수를 따로 만들어서 사용하는 경우를 많이 보았다. 유클리드 호제법을 이용하여 재귀형식으로 최대공약수를 구하고 최대공약수를 이용하여 최소공배수를 구하는
split메소드에 map함수를 이용하여 요리조리하면 할만 할 듯 하다. 조건이 세가지이니까 정리를 한번 해보자.숫자는 신경쓰지말고 단락을 전부 소문자로 바꾼다.각 단락의 첫 글자를 대문자로 바꾼다.연속된 공백을 처리해준다.레고레고공백이 연속되면 한칸으로 줄인다는 망상(
예전에 피보나치 수열에 관한 문제를 풀었던 기억이 있다. a=b , b=c 이런식으로 더해주는 숫자들을 한칸씩 올려주는 방법이었던 것 같은데 0이랑 1만 예외로 처리해주면 간단하게 풀 수 있을 것 같다.F(n-2)이 담길 one을 0으로, F(n-1)이 담길 two를
가장 큰 수를 만드려면 앞자리에 큰수가 올수록 좋기때문에 numbers의 각 원소마다 첫번째 자리를 비교하여 큰 순서대로 숫자를 이어붙이면 될 듯 하다. 중간중간에 형변환만 잘 해주면 쉽게 풀 수 있지 않을까??새로운 배열에 원소들을 저장할 빈 배열new를 선언한다.입
입력받은 숫자들을 각각 꺼내서 만들 수 있는 총 조합의 갯수를 구한 뒤 그 중에서 소수의 갯수를 찾으면 될듯하다. 문제는 총 조합의 갯수를 구하는 것 인데 전에 풀어본적이 있으니 참고해서 풀면 될 것 이다.
문제의 카테고리가 해시인만큼 mutableMap형태로 종류에 따라 분류를 해서 저장한뒤 각각의 갯수로 모든 조합의 개수를 구하면 될 것 같다. 또 조합을 구하는게 문제인데 combination함수를 만들어서 쓰는 방법말고 다른 방법이 있는지도 좀 찾아보고 참고를 해야겠
일단 yellow가 커질때 마다 변하는 brown의 규칙을 찾은 다음 반복문을 돌려서 일치하는 경우를 찾아내면 될 듯 하다. 그림을 그려보니 네모칸이 늘어나는 규칙은 4 + 가로x2 + 세로x2였다. 그럼 위의 식과 일치하는 brown의 값을 찾아주고 그 때의 가로 세
문제의 카테고리가 스택,큐 이기 때문에 큐를 쓰면 된다는 힌트를 얻을 수 있었고, 시간의 흐름에 따라 다리에 올라가고 내려가고의 순서가 중요할 것 같다. 다리를 Queue로 만들고 무게를 저장할 변수, 올라가있는 트럭을 저장할 변수 정도를 미리 선언하고 코딩하면 될 것
레벨2로 올라오고나서 쉽게 풀리는 문제가 없다... 이 문제도 굉장히 간단해 보였는데 막상 풀다보니 막히는 부분이 너무 많았고 결국 인터넷을 이리저리 찾아보고 나서야 해결할 수 있었다. 입력받은 numbers를 한자리씩 비교하며 뒷자리가 더 작은 수이면 그때의 값을
이번 문제는 카테고리가 스택/큐 였지만 문제를 읽어보다보니 굳이 스택이나 큐를 사용하지 않고도 풀 수 있을 것 같다는 생각이 들었다. 결국 중요한건 작업이 배포되기까지의 시간이기 때문에 그 시간만 구해서 잘 비교하면 될 것 같다. 정리해보자면완료될때까지의 날짜를 담을
스택이나 큐를 사용해서 문제를 다시 풀기로했으니 공부를 조금 하고 가보자. 작업 완성까지 걸리는 날짜를 구하는 부분은 그대로 사용해도 될 듯하고, 대신 그 날짜들을 queue에 넣어서 하나씩 빼면서 원하는 값을 얻어야 한다. 그러므로 저번에 사용해보았던 queue의 함
이번 문제도 카테고리가 큐/스택 이기때문에 queue에 while문을 잘 이용해서 풀어봐야겠다.먼저 같은 중요도의 작업들이 있을 수 있으므로 priorities의 원소들에 번호를 붙여서 로직을 돌리고 마지막에 location의 순서를 리턴해주면 될 것 같다. 문제는 대
![](https://images.velog.io/images/pinocchio22/post/e884f735-9170-49e7-8f43-653c5c59725c/image.p
문제의 카테고리는 깊이/너비우선탐색이다. 학교다닐때 알고리즘 수업을 아예 안듣다시피해서 아무것도 모른다고 봐도 과언이아니다. 그래서 알고리즘 문제가 나오면 항상 막막하고 인터넷에서 해당 알고리즘에 대하여 공부부터하고 코딩을 했었다. 알고리즘을 떠나 이 문제를 보고 떠
![](ht
이번문제는 예시를 봐야 이해가 훨씬 잘되는 것 같아서 예시를 첨부했다. 대충 문자별로 인덱스를가지고 어찌저찌 연산을 하는 방법으로 생각중인데 문제에 디테일한 부분이 좀 부족한 것 같다.예를들어 AAAE다음이 AAAEA인것 같은데 AAAI로 헷갈리는 사람들이 있을 것이다
확실히 배열의 크기를 알수있을때는 미리 크기를 정하는게 확실히 속도가 빠르다는거 알 수 있었다.그리고 계속 테스트케이스의 뒷부분으로 갈수록 통과를 못했었는데, 문제를 찾다보니 형변환의 시점때문이라는걸 알 수 있었다. Long형태로 입력받은 변수를 Int형으로 바꾸고 연
![](https://velog.velcdn.com/images/pinocchio22/post/faef8809-e9a4-44c6-b2f8-a6c663cbaeb3/imag
몇명이 참가하는지는 중요하지않고 그냥 라운드가 진행될때마다 answer를 1씩 올려주는 방법으로 풀어볼 것이다. 문제에서 주어지는 a와b가 이겼을때 배정받는 다음 번호는 2로 나누었을때와 같기 때문에 (짝수일 경우, 홀수일경우는 반올림) 반복문을 통해 라운드가 진행될
주어진 방정식들을 가지고 접점을 잘 구하면 별채우는건 문제가 아닐 것 같다. 기울기같은 것을 이용해서 어떻게 구할 수 있지 않을까 하는 생각이든다.source : https://m.blog.naver.com/tobsysco/90189606643source :
문제자체를 이해하는데도 시간이 굉장히 오래걸렸다.
![](https://velog.velcdn.com/images/pinocchio22/post/5dc50a85-b6d5-4a07-92a8-aecc593815e2/imag
특별한 연산이나 알고리즘보다는 어떠한 규칙성이 있을 것 같다는 생각이 들어서 그림을 그려가며 접근하려고 했다. 따라서 주어진 입출력외의 또 다른 테스트케이스를 만들어서 그림을 그려보았다.어떠한 사각형의 꼭지점을 지나는 점을 기점으로 규칙적인 모양이 반복되고 있었고 그