문제 ]
배열 요소 중 홀수 값의 합계
Sample Input
3, 2, 4, 6, 5, 7, 8, 0, 1
Sample Output
16
Explanation
Sum of odd elements is 3+5+7+1 = 16
제출 ]
def f(arr:List[Int]):Int = arr.filter(_ % 2 != 0).sum
풀이 ]
filter와 sum 함수를 써서
num / 2의 나머지값이 0보다 크면 더하는 작업을 수행한다
문제 ]
배열 요소 중 홀수 값의 합계
Sample Input
3, 2, 4, 6, 5, 7, 8, 0, 1
Sample Output
16
Explanation
Sum of odd elements is 3+5+7+1 = 16
제출 ]
def f(arr:List[Int]):Int = arr.filter(_ % 2 != 0).sum
풀이 ]
filter와 sum 함수를 써서
num / 2의 나머지값이 0보다 크면 더하는 작업을 수행한다
문제 ]
Create an array of integers, where the value of is passed as an argument to the pre-filled function in your editor. This challenge uses a custom checker, so you can create any array of integers. For example, if , you could return , , or any other array of equal length.
Note: Code stubs are provided for almost every language in which you must either fill in a blank (i.e., ____
) or write your code in the area specified by comments.
Method Signature
Number Of Parameters: 1
Parameters: [n]
Returns: List or Vector
Input Format
A single integer, .
Constraints
Output Format
The function must return an array, list, or vector of integers. Stub code in the editor prints this to stdout as a space, comma, or semicolon-separated list (depending on your submission language).
Note: Your output need not match the Expected Output exactly; the size of your printed list is confirmed by a custom checker, which determines whether or not you passed each test case.
Sample Input 0
10
Sample Output 0
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Sample Input 1
3
Sample Output 1
[1, 2, 3]
제출 ]
object Solution extends App {
import scala.io.StdIn.readInt
def f(num:Int) : List[Int] = {
return List.fill(num)(1)
Or
return List.range(0,num)
}
println(f(readInt))
}
풀이 ]
num = 4
return List.fill(num)(1) : 리스트 선언시 1로 첫번째인자(num) 만큼 채운다.
ex List(1,1,1,1)
return List.range(0,num) : 리스트 선언시 0~num까지의 수로 채운다.
ex List(0,1,2,3)
세번자 인자 추가시 배열의 스텝을 정한다.
List.range(0,10,2)
ex List(0,2,4,6,8)
문제 ]
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.
0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.
제한 사항
numbers의 길이는 1 이상 100,000 이하입니다.
numbers의 원소는 0 이상 1,000 이하입니다.
정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.
입출력 예
numbers | return |
[6, 10, 2] | 6210 |
[3, 30, 34, 5, 9] | 9534330 |
제출 ]
풀이 ]
내림차순 : return (o2+o1).compareTo(o1+o2);
오름차순 : return (o1+o2).compareTo(o1+o2);
https://codevang.tistory.com/294
문제 ]
Input Format
integers contained in the list, each on a separate line.
Output Format
Output the list with the integers at odd positions removed i.e. the first element, the third element and so on. The relative positions of the remaining even-position elements should be the same as they were in the original array. Each integer will be on a separate line.
NOTE: By odd positions, we mean the first, third, fifth, etc position of the array needs to be filtered out. As per programming language conventions, these might (and they often do) correspond to indices and so on.
Sample Input
2
5
3
4
6
7
9
8
Sample Output
5
4
7
8
제출 ]
def f(arr:List[Int]):List[Int] = {
arr.tail.iterator.sliding(1, 2).toList.flatten
//arr.view.zipWithIndex.filter(_._2 % 2 != 0).map(_._1).force.toList
}
풀이 ]
arr.tail.iterator.sliding(1, 2).toList.flatten
iterator의 함수 sliding을 이용해 리스트의 짝수 인덱스 값을 구분한다.
def sliding[B >: A](size: Int, step: Int = 1): GroupedIterator[B]
예시)
// Returns List(ArraySeq(1, 2, 3), ArraySeq(2, 3, 4), ArraySeq(3, 4, 5)) (1 to 5).iterator.sliding(3).toList
// Returns List(ArraySeq(1, 2, 3, 4), ArraySeq(4, 5)) (1 to 5).iterator.sliding(4, 3).toList
// Returns List(ArraySeq(1, 2, 3, 4)) (1 to 5).iterator.sliding(4, 3).withPartial(false).toList
첫번째 인자는 뽑을 갯수, 두번째 인자는 각 인덱스 마다 건널 뛸 값을 말한다.
리턴 값이 Iterator므로 toList로 형변환 후, flatten함수로 하나의 리스트를 만든다.
예시)
val xs = List( Set(1, 2, 3), Set(1, 2, 3) ).flatten // xs == List(1, 2, 3, 1, 2, 3) val ys = Set( List(1, 2, 3), List(3, 2, 1) ).flatten // ys == Set(1, 2, 3)
다른 풀이법으로 는
arr.view.zipWithIndex.filter(_._2 % 2 != 0).map(_._1).force.toList
가 있다.
에러메세지 ]
org.apache.zeppelin.interpreter.InterpreterException: org.apache.zeppelin.interpreter.InterpreterException: Fail to open SparkInterpreter
...
Caused by: org.apache.zeppelin.interpreter.InterpreterException: Fail to open SparkInterpreter
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
원인 ]
Zeppelin실행 계정은 root로, 해당 디렉토리에 권한이 없어
/user/hdfs/에 스파크 staging을 생성하지 못해 생긴다.
해결 ]
/user 밑에 root 디렉토리 생성 후
다시 제플린에서 스파크를 실행시키면 정상적으로 아래와 같은 파일이 생성된다
(위-에러 / 아래-재실행 )
문제 ]
Input Format
The first line contains the delimiter .
The next lines each contain an integer, which represents the elements of the list/array. You have to read the input to the End-Of-File.
Output Format
Print all the integers from the array that are less than the given upper limit in value on separate lines. The sequence should be the same as it was in the original array.
Constraints
For any element, in the array,
Note
The purpose of this challenge is to learn how to write your own implementation of a filter function. We recommend not using the inbuilt library function.
Sample Input
3
10
9
8
2
7
5
1
3
0
Sample Output
2
1
0
제출 ]
def f(delim:Int,arr:List[Int]):List[Int] = {
arr.filter(_<delim)
}
풀이 ]
받은 리스트 요소들 중에 인자값 delim보다 작은 것을 리턴하는 문제이다.
def filter(p: (A) => Boolean): List[A]
List.filter 함수를 통해 List.filter( x=> delim > x )와 같이 조건을 주어,
각 요소들 중에 조건에 해당하는 값을 리턴한다.
추가적으로 List.filter(_<delim).sorted, sorted함수를 추가해 정렬된 반환값을
리턴할 수 있다.