이번 프로젝트 100 시즌 3의 경우에는 시즌 2에 3개도 많다고 생각을 했지만, 이제는 정말 자연스러워진 1일 1시쓰기, 그리고 그나마 부담 없이 다른 사람들의 출퇴근 모습과 서로 으쌰으쌰 하면서 존버(조....온 ㄴ...ㅏ 버...티는 이런말이 음...) 므튼! 존버를 하는 그런 모습 (하지만 본인은 존버에 실패했다고 한다;;;;)을 보며 응원을 하며 그리고 저는 개인적으로 이 프로젝트는 누군가가 생각이 나는 프로젝트라 이번에도 당연히! 그리고 같은 매니저님께서 열어주셔서 신청!!
그리고, 새로운 도전으로 코딩과 소제가 정해진 짧은 나에대한 글쓰기, 이 두가지에 대해서 진행을 좀 새롭게 해 보며, 이번 프로젝트부터는 매일 가능하면 관련 내용들을 포스팅에 담아두려고 합니다.
새로운 도전 첫번째! 코딩테스트 도전1일1알고리즘 도전
사실 하루만에 크게 느낀게 없을 거라 생각했습니다. 그리고 하루 한다고 달라질 것도 없다 생각했지만, 100일간 하면 달라질 것이다 생각하고 시작을 했습니다.
하지만 결론부터 이야기하면, 1일차, 결국 예전과 같이 하나도 한번에 풀지 못했고, 그 하나를 결국 풀어 내서, 제가 부족했던 점과 앞으로 프로그래밍에 대해서 알고리즘 공부나, 코딩 시험을 준비해야 할 방향에 대한 감은 확실하게 잡을 수 있었습니다.
이번 플백 시즌 3에서 저에게는 가장 어려운 프로젝트가 될 것 같지만, 한번 징하게 붙들고 해 보려고 합니다. 인증은 날로 하더라도 실제 프로젝트를 설렁설렁하지 않게되길 바라며, 작심 3일의 1/3을 잘 끝낸 내용을 정리합니다.
프로그래머스 lv.1 부터 시작합니다
언어선택: JAVA, C#, C++,GO,JS,Kotlin, Python2, Python3, Ruby, Scala, Swift
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
2에서 나온 배열의 3번째 숫자는 5입니다.
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.
제한사항
array의 길이는 1 이상 100 이하입니다.
array의 각 원소는 1 이상 100 이하입니다.
commands의 길이는 1 이상 50 이하입니다.
commands의 각 원소는 길이가 3입니다.
[입출력 예]
array commands return
[1, 5, 2, 6, 3, 7, 4]
[[2, 5, 3], [4, 4, 1], [1, 7, 3]]
[5, 6, 3]
[입출력 예 설명]
[1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다. [1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다. [1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다.
저는 C++, C#위주로 개발을 하는 것이 업무로 한 개발량으로만 볼때는 가장 많았고, C#이 역시 처음 시작을 했던 언어라서 그런지 가장 쉽게 작업을 할 수 있고, UI가 있는 장난감프로그램을 만들기에 가장 편하고 쉬워서 많이 사용을 하고 있습니다만, 이번 프로젝트를 진행하며 시작을 C#으로 하되 다른 언어가 문제풀기에 더 적합하다면 새로운 언어도 기초부터 공부해야겠다는 마음을 갖게 되었습니다.
먼저 c#으로 주어진 문제에 대한 답변 코드의 템플릿입니다.
using System;
public class Solution { public int[] solution(int[] array, int[,] commands) { int[] answer = new int[] {}; return answer; } }
저는 위에서 우선 별 생각없이 작업을 진행했고, 1시간여 고민을 했을 때에는 별 성과없이 아래의 정도 작업이 되었습니다.
사실 조금 더 되긴 했었는데, 저장이 되지 않아있다 보니,, 우선 대충 이렇게 이중 반복문을 사용하고, 새로운 임시 배열에 commands변수로 받은 시작인덱스부터 끝 인덱스까지의 배열을 만들고 정렬을 하는 부분을 검색하고 있었습니다.
우선 이번 문제를 해결하기 위해 새로 배운 것들에 대해서 정리합니다.
1. C#에서 배열과 List의 전환
Array와 List에 대해서는 정말 면접 문제, 시험 문제 할 것 없이 늘 저를 괴롭혀 왔지만, 실제로 아직까지는 업무상의 개발을 할 때 크게 사용할 일이 없었습니다. 그렇기에 해당 내용에 대한 c#언어 문법에 대한 지식도 사용 경험도 전혀 없었지만 필요에 의해 검색을 했고 그 방법을 찾았습니다.
2. C#에서 오름차순, 내림차순 정렬하기
3. 그 동안의 생각과 코딩에 대한 접근방식
인생 명언중 하나로 요즘 자주 떠올리는 말인 '생각하는 데로 살지 않으면, 사는 데로 생각한다.'를 코딩에서도 정말 정확하게 느낄 수 있는 첫째 날이었습니다.
코딩을 할 때, 큰 틀을 정하지 않고, 일단 시작부터 하고 보니, 이중 반복문을 왜 쓰고 있고 뭔가 중간중간 놓치고 있는 부분이 생기는 것을 확인했습니다.
처음엔 짧게 생각하고 덤볐는데, 틈틈히 하다보니 끊겨서 앞으로 100일간은 Java의 인터페이스 처럼 주석으로 뭔가 크게크게 설계를 해 두고 그 부분을 실제 코드로 채워가는 방법으로 코딩을 해 보려고 합니다.
시인에게 납치된 적이 있는가. 만약 내가 시인이라면 당신을 납치할 거야. 나의 시구와 운율 속에 당신을 집어넣고 롱아일랜드의 존스 해변이나 혹은 어쩌면 코니아일랜드로 혹은 어쩌면 곧바로 우리 집으로 데려갈 거야. 라일락 꽃으로 당신을 노래하고 당신에게 흠뻑 비를 맞히고 내 시야를 완성시키기 위해 당신을 해변과 뒤섞을 거야. 당신을 위해 현악기를 연주하고 내 사랑 노래를 바치고 당신을 얻기 위해선 어떤 것도 할 거야. 붉은색 검은색 초록색으로 당신을 두르고 엄마에게 보여줄 거야. 그래, 만약 내가 시인이라면 당신을 납치할 거야.
'참 낭만적인 시다.'
라고 생각도 하고, 누군가 정말 얻고 싶은 사람이 있다면 어떤 것도 할 것이라는 말이 공감이 되면서도, 참 무섭다는 생각도 든다. 예전엔 드라마 남주인공이 여자에게 키스를 하면 박력 있고 멋있어 보였는데 지금은, 강제성이 있는 성추행? 성폭행이 아닐까? 못해도 성희롱이나? 이런 생각도 들면서 뭔가 그 박력과 강제성의 애매모호함 사이에 정말 혼란스러워한다. 그렇게 생각을 하는 내가 너무 '낭만도, 재미도 없는 사람일까?' 싶기도 하고 어찌 보면 요즘 사회 분위기에는 당연한 일이다 싶기도 하다.
혹자는 우스게소리로 남자가 마음에 들면 박력이고 싫으면 폭력이라는 얘기를 하기도 했는데, 어느 정도 이해가 가기도 하고 짜증이 나기도 하고, 참 그랬다.
뭔가 시를 읽고 생각이 많아 생각을 적으면 나중에 보고 웃거나 다른 사람이 보고 웃는 게 뭔가 기분이 좋지 않으면서도 좋고....
옛날 싸이월드의 ㄴr는... 이런 느낌은 아니었는데, 먼 훗날 보면 저런 느낌일까?
Lr는.. ㄱr끔 ..눈물을 흘린ㄷr... ┐ㅏ끔은 눈물을 참을 수 없는 LHㄱr ★루ㄷ├.. 맘ⓞI ●ㅏㅍr人┦..소ㄹi치며 울 수 있ㄷr는 건.. 좋은ㄱ┤OF.. ■┤ 꼭 슬ㅍㅓㅇF 만 우는건 ○rL1잖◎├..¿^^ 난..눈물ㅇi 좋ㄷr... ●rLl...□ㅓ乙ㅣ┓r Оr닌.. 맘으로..우는 LH ┒r 좋とr...
이런 느낌일까??
그렇다면 창피하겠지만 나중에 웃을 일이 없어질지도 모르니 마음껏 흑역사도 만들어봐야지~ ㅎㅎㅎ
어차피 얼마 많은 사람이 보는 것 아니고 다들 좋은 분들이 와서 보시고 조용히 피식하고 가시겠지.... 싶다.
강원도 평창군 미탄면 청옥산 기슭 덜렁 집 짓고 살러 들어간 제자를 찾아갔다 거기서 만들고 거기서 키웠다는 다섯 살 배기 딸 민지 민지가 아침 일찍 눈 비비고 일어나 저보다 큰 물뿌리개를 나한테 들리고 질경이 나싱개 토끼풀 억새..... 이런 풀들에게 물을 주며 잘 잤니, 인사를 하는 것이었다 그게 뭔데 거기다 물을 주니? 꽃이야, 하고 민지가 대답했다 그건 잡초야, 라고 말하려던 내 입이 다물어졌다 내 말은 때가 묻어 천지와 귀신을 감동시키지 못하는데 꽃이야, 하는 그 애의 말 한마디가 풀잎의 풋풋한 잠을 흔들어 깨우는 것이었다