일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 벤쿠버렌트
- IntelliJ
- codility
- 부산입국
- 벤쿠버집구하기
- QA엔지니어
- FK 설정
- 설탕문제
- 외래키설정
- 백준알고리즘
- Lesson2
- 데이터의 무결성
- FIDO 환불
- 캐나다워홀
- 벤쿠버 렌트
- 레노보노트북
- 리눅스
- 1463번
- binaray_gap
- Lesson3
- BC렌트
- 파이도 환불
- 프로그래머스
- Java
- Linux
- 언마운트
- FLEX5
- 자바
- database연결
- 엔테크서비스
- Today
- Total
목록codility (6)
대충이라도 하자
*** 46% 나옴 ***100% 나옴 ***사실 코드 길이도 길고, 복잡해서 100% 안 나올 줄 알았는데 코드 길이보다 걸리는 시간이 더 중요한가보다... ***코드가 길어질까봐, 안 해봤던게 많은데, 코드 시간(시간 복잡도)에 더 집중해야 할 듯. For문이 3개 있지만, 중복되는 건 없어서 시간복잡도가 O(N)이 나온다.
***ArrayList에서 remove안에 그냥 일반 숫자를 넣으면 remove(1) 인덱스를 의미하는 것 하지만, remove((Integer)1)은 1에 해당하는 값을 없애는 것 ***10% 나옴ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅜㅜ *** n까지의 합에서 A 배열에 들어있는 합을 뺀 나머지가 없는 숫자라는 걸 깨달음 ㅜㅜ *** 80% 나왔다 *** 80% 나왔을 때 확인해보니, sum이 int 형이라서 최대 큰 수가 안 담긴다...ㅋㅋㅋ *** long으로 변경해주고 return 값을 (int)로 변경해주었다. *** ("(long)" (A.length+1)(A.length+2)/2 이 부분에서 long이 중요함!!!
내 코드 : 위의 코드는 55% 받았기 때문에, 다시 도전해야 함. ***contains 사용 66% 받음 마지막 도전!! 내가 생각한 방법과 비슷했는데 훨씬 간단하다. 나는 짝이 안 맞긴 때문에 2를 나눠서 나머지를 얻어야 한다 생각했는데 그럴 필요없이 넣다, 뺐다 해서 남아있으면 홀수인 것! 게다가 arraylist말고 hashset으로 하면 중복 허용하지 않는 거라 저절로 알아서 처리 가능 배열 종류 다시 익히고 적절하게 필요할 때 사용할 수 있어야 겠다.
내 코드 : 87%가 나왔다. 빈 배열을 줬을 때, runtime error를 일으켜서 감점된 듯ㅜㅜ 시간이 있으면, 두번째 방법으로 생각했던 K 만큼 인덱스를 이동시키고 length넘어서는 건 나머지 인덱스로 집어넣는 방법으로 다시 한 번 풀어봐야 겠다. *** 깊은 복사, 얕은 복사 이해할 필요 ***그냥 int[] B=A라고 주면, A의 배열 값이 바뀔 때마다, B를 바꾸지 않아도 저절로 바뀜 그렇기 때문에 Arrays.copyOf로 복사를 해줘야, 영향을 받지 않는다.