프로그래머스로 치뤄졌음.
def solution(std, base_cost, dists):
answer = []
for i in dists:
if std >= i:
answer.append(base_cost)
else:
answer.append(base_cost+(i-std)*1000)
return answer
입출력 예시)
std = 5
base_cost = 3000
dists = [3, 5, 7]
result: [3000, 3000, 5000]
n값에 대하여 만들어진 사각형은
가로길이 1, 세로길이 2인 사각형 n개가 모여 만들어진 사각형으로,
전체 사각형의 윗변은 1부터 n+1번 꼭지점으로 이루어져 있으며, 아랫변은 n+2번부터 n+n+2번 꼭지점으로 이루어져 있다.
1번 꼭지점에서 출발하여 각 꼭지점을 지그재그로 이동하여 n+1번 꼭지점에 도달할 때 만들어지는 삼각형의 넓이들을 오름차순으로 정렬하는 문제였다.
def solution(n, 지그재그하며 이동한 꼭지점 순서 리스트 points):
answer = []
if points[1] != n+2:
answer.append(points[1] - (n+2))
if points[-2] != 2*n+2:
answer.append(2*n+2-points[-2])
for i in range(len(points)-2):
answer.append(points[i+2] - points[i])
answer.sort()
return answer
만들어지는 삼각형들의 높이가 모두 사각형 세로길이인 2였으므로, 삼각형들의 밑변 길이가 곧 그 삼각형의 넓이였다. 따라서 points 리스트의 1칸씩 떨어져있는 꼭지점 번호들의 차이가 밑변 길이가 되었다.
단 아랫변의 points 중 첫번째와 마지막 꼭지점은, 양끝 꼭지점이 아닐 경우,
삼각형이 추가로 만들어지므로 이 조건을 생각해주어야 했다.
알고리즘 문제였는데,
우선순위에 따라 텍스트 크기를 구하는 문제였다.
#1
#2
command에 따라 text에 주어진 각 id별 폰트 크기를 사전식 id 순으로 출력해야 했는데,
1.id가 있다면 class 속성의 커멘드는 따를 필요 없이 그 id의 텍스트 크기가 유지된다. => id가 f라면, 텍스트 크기는 99이다. ("#f", "99" 커멘드 때문)
2. id가 없다면 뒤의 class 속성의 커멘드에 따라 텍스트 크기가 정해진다. 같은 class의 커멘드가 존재할 경우 나중 커멘드를 따른다. -> id가 d라면, 커멘드에 d에 대한 것이 없기 때문에 d의 class 중 3에 대한 커멘드를 따른다. (".3", "12"와 ".3", "7" 중 나중 것)에 따라 텍스트 크기는 7이다.
3. 만약 우선순위가 같다면, 마지막 것을 따르라고 되어 있었던 것 같다.(불확실)
def solution(text,commands):
answer = [0]*(len(text))
id = []
text.sort #id 순으로 출력해야 하므로
for i in text:
id.append(i[0])
for i in id:
for j in commands:
if j[0][1] == i:
answer[id.index(i)] = j[1]
else:
for k in i[2:]:
if k == j[0][1]:
answer[id.index(i)] = j[1]
return answer
잘 안짜져서 포기하려던 와중 그래도 한번 해보자 하고 막판에 for문을 많이 써서 어떻게 해볼려다가 시간이 없어서 더 생각하지 못했다.. 위 코드로 돌려보니까 주어진 3개의 테스트 케이스 중 1개만 맞고 나머지는 잘 안나왔다.
위의 입출력의 경우 [99,99]로 나왔고([7,99]로 나와야 하는데), 두번째의 경우 [0,16,9]로, 0이 나오면 안되는데 나와서 틀렸던 것 같다. 세번째는 [22,22]가 나와서 우연히 맞았다.
def solution(길이가 n인 리스트):
answer = [[] for i in range(len(list))]
for i in list:
for j in range(len(list)):
if i%7 == j:
answer[i].append(j)
## 모르겠다..
return answer
#1
#2
n=7이고 인덱스가 0부터 6까지인 경우인데,
리스트의 수들 중 n으로 나눈 나머지가 인덱스와 같도록 할 때,
가장 많은 수들이 그렇게 되는 경우는 위와 같다. 7로 나눈 나머지가 0 또는 2 또는 5 또는 6이므로 가장 많은 경우는 4개이다.
나머지가 같은 경우 사전식 배열을 한다.
예를 들어 [3,4,2] 와 [3,4,6] 중 더 앞선 배열은 [3,4,2]가 되는 것이다.
SELECT COUNT(C_ID) AS CNT
FROM 표
GROUP BY PROGRAMMING_LNG
ORDER BY CNT LIMIT 1
소마에서 각 프로그래밍 언어별로 사람을 하나씩 모아 팀을 구성하려고 할 때 만들어질 수 있는 최대 팀 수를 구하는 문제였다.
우선 프로그래밍 언어별로 존재하는 사람 수를 모으고, 한 팀에 모든 프로그래밍 언어가 들어가야 하므로 가장 작은 수의 사람이 존재하는 프로그래밍 언어의 사람 수를 출력해야 했다. 컬럼 이름은 CNT 로 해야 했다.
주어진 테스트 케이스 이외에 특별한 경우도 되는지 체크를 해보고 싶었는데 시간이 모자랐다.. 1,2,5번 문제는 확실히 푼 것 같은데 예외 사항에서도 맞았을지.. 주어진 테스트케이스만 다 맞혔다고 해서 제출한 후 다른 케이스에 대해서 통과됐는지 실패했는지는 확인할 수는 없었다. 점수도 안 알려준다고 한다. 그래서 불합 여부는 예측할 수 없지만, 최대 3.5솔까지 했다고 가정하면 승산 있지 않을까>< 작년에는 2-3솔 푼 사람도 통과됐다고 하니.. 2차 코테를 준비하며 기다려보아야겠다.
결과적으론? 떨어졌다ㅎ 사실 어찌보면 당연한 결과다~
오픈채팅방의 합격자들은 거의 올솔해야했던 것 같다(내 기억으론)
첫 코딩테스트였던만큼 많이 떨었고, 대부분 사람들보다 준비 기간은 짧았지만 그래도 나름 열심히 했어서 아쉬웠던 것 같다. 코테 어떻게 하는지 유튜브도 찾아보고, 백준 브론즈~실버1까지 풀어보고, 예전 합격자 후기도 다 찾아보고.. 등등..
그래도 어떤 부분이 부족한지 확실하게 알 수 있었고, 내가 1-2달 동안 준비한 것들이 다 실제로 쓰이는 게 신기했다. 이런식으로 하는 거구나 경험치를 쌓은 것만으로도 매우 만족한다 사실.
더 철저하게 준비해서,, 백준 골드까지 풀고, 알고리즘 종류별로 완벽하게..!ㅋㅋ
다음엔 꼭 합격하자..!
그리고 저는 5개월 뒤에 네이버 부캠에 합격하게 됩니당...🥹