일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 네이버
- 네이버구름
- naver
- error
- 아이폰 비율
- 구름알고리즘
- android
- codility
- java
- 헬스
- 아이폰 해상도
- 맥북
- 구름TEST
- Object-c
- 코딩테스트
- 알고리즘
- ios
- 안드로이드
- 아이폰
- iPhone
- 네이버알고리즘
- code
- goormtest
- algorism
- 맥용
- codemonkey
- 코딩
- Cordova
- Swift
- objective-c
- Today
- Total
그래오늘은이거야
[Java]goorm test(구름TEST) 알고리즘 algorithm 연결 리스트 중간 값 삭제 본문
[Java]goorm test(구름TEST) 알고리즘 algorithm 연결 리스트 중간 값 삭제
jinhongstar 2019. 8. 30. 14:45안녕하세요 Leo 입니다.
이번 소개해줄 알고리즘 사이트는 구름TEST 라는 사이트 인데요,
NHN에서 투자 받아 개발한 알고리즘 사이트 입니다.
회사면접 코딩테스트를 하는 유명한 사이트죠...
저는 IOS (Object-c , Swift) 위주로 개발을 하고 가끔 안드로이드 개발을 하는데요...
회사에서 Java 로 코딩테스트를 하라고 해서 ... 하라면 해야죠... 풀어봤습니다.
제가 20문제 이상 푼것 같은데 이걸 공유 해드리도록 하죠...
이 글이 누군가에겐 "약"이 되고 누군가에겐 "독"이 될 것이다.
개발자라면 적어도 기본 알고리즘 정도는 스스로 학습하여 풀어봐야 한다.참고로 코딩테스트 문제를 제출 한 심사위원 분도제 블로그에서 답을 확인 한다는 것을 역으로 알아두고 보세요!! ㅎㅎ
알고리즘 문제
문제 :
연결 리스트에 자료를 입력하고 연결 리스트의 중간에 있는 노드를 삭제한 결과를 출력하는 프로그램을 작성하십시오.
1 2 3 4 5가 순서대로 연결 리스트를 이용해 연결되어 있는 상황이라고 가정하고 문제를 해결하도록 하겠습니다.
입력
없음
출력
중간에 있는 노드(3)를 삭제한 형태
* 마지막에 'NULL' 출력
입/출력 예시
⋇ 입출력 형식을 잘 지켜주세요.
␣ : 공백
↵ : 줄바꿈
−⇥ : 탭
보기 입력 1
없음
출력 1
1 2 4 5 NULL
======================================================================================================
풀이
======================================================================================================
//Please don't change class name 'Main'
import java.util.Scanner;
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[] linkedList = new int[]{1,2,3,4,5};
int deleteNode = 3;
for(int i=1; i <= linkedList.length; i++){
//3을 제거
if(i == deleteNode){ //삭제할 노드
for(int j=1; j <= linkedList.length - deleteNode; j++){ //선택된 값에서 전체값 만큼만 돈다.
int changeCount = deleteNode + j - 1; //-1 은 0부터 배열시작 값을빼기위한
//temp에 값을 저장 후 뒤로 한칸씩 채운다.
int temp = linkedList[changeCount];
linkedList[changeCount -1] = temp;
//3을 제거 한 후 마지막에 0으로 대입 int[] 에는 null이 안들어가서 0으로 대치
if((deleteNode + j) == linkedList.length){ //마지막 값 구하기.
linkedList[linkedList.length-1] = 0;
}
}
}
}
//0으로 변환한 값을 다시 NULL로 repalce
// String str = Arrays.toString(linkedList);
String str = Arrays.toString(linkedList).replace(", "," ").replace("[","").replace("]","").replace("0","NULL");
System.out.print(str);
}
}
참고로 저는 알고리즘 풀이 점수는 높은 점수는 아닙니다.
일단 푸는 거에 집중했습니다. 알고리즘에 정답은 없습니다.
더 좋은 알고리즘을 만들어 내는게 목표 입니다.
알고리즘에 대하여 더 이야기 하실분은 댓글남겨주세요!
구름TEST 화면
구름테스트, 구름TEST 가 지원하는 프로그래밍 언어
그 외 Scala, Pascal, Lua, Objective-C, Rust, Cobol, Clojure, Smalltalk, Dart, Haskell, Perl, Common Lisp, D, Erlang 등
구름테스트, 구름TEST 를 2019년 현재 적용중인 회사
'세상 개발 > Java(SpringFramework)' 카테고리의 다른 글
[Java]goorm test(구름TEST) 알고리즘 algorithm 최소값 (0) | 2019.08.30 |
---|---|
[Java]goorm test(구름TEST) 알고리즘 algorithm 몫과 나머지 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 특정 문자 개수 구하기 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 스택(Stack) (0) | 2019.08.30 |
[Java]goorm test(구름TEST) Bubble Sort (0) | 2019.08.30 |