Skip to content

Commit

Permalink
Merge branch 'main' into 9-pu2rile
Browse files Browse the repository at this point in the history
  • Loading branch information
pu2rile committed Jul 11, 2024
2 parents 147d462 + 3760ce9 commit 5f494ae
Show file tree
Hide file tree
Showing 19 changed files with 464 additions and 8 deletions.
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,11 @@
<tr>
<td align="center"><a href="https://github.com/oesnuj"><img src="https://avatars.githubusercontent.com/u/112786665?v=4" width="100px;" alt=""/>
<td align="center"><a href="https://github.com/pu2rile"><img src="https://avatars.githubusercontent.com/u/163822282?v=4" width="100px;" alt=""/>
<td align="center"><a href="https://github.com/honggukang0623"><img src="https://avatars.githubusercontent.com/u/137487445?v=4" width="100px;" alt=""/>
<td align="center"><a href="https://github.com/suhyun113"><img src="https://avatars.githubusercontent.com/u/163711629?v=4" width="100px;" alt=""/>
</tr>
<tr>
<td align="center"><a href="https://github.com/oesnuj" title="Code">oesnuj</a></td>
<td align="center"><a href="https://github.com/pu2rile" title="Code">pu2rile</a></td>
<td align="center"><a href="https://github.com/honggukang0623" title="Code">honggukang0623</a></td>
<td align="center"><a href="https://github.com/suhyun113" title="Code">suhyun113</a></td>
</tr>
</table>
Expand Down
3 changes: 2 additions & 1 deletion honggukang0623/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
|:----:|:---------:|:----:|:-----:|:----:|
| 1μ°¨μ‹œ | 2024.03.26 | 사칙연산 |[λΆ„μˆ˜μ˜λ§μ…ˆ]https://school.programmers.co.kr/learn/courses/30/lessons/120808 | [#5]https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/5 |
| 2μ°¨μ‹œ | 2024.03.29 | λ°°μ—΄ |[λ°°μ—΄λ‘λ°°λ§Œλ“€κΈ°]https://school.programmers.co.kr/learn/courses/30/lessons/120809 | [#7]https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/7 |
| 3μ°¨μ‹œ | 2024.04.05 | λ°°μ—΄ |[μ€‘μ•™κ°’κ΅¬ν•˜κΈ°]https://school.programmers.co.kr/learn/courses/30/lessons/120811# | [#13]https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/13 |
| 3μ°¨μ‹œ | 2024.04.05 | λ°°μ—΄ |[μ€‘μ•™κ°’κ΅¬ν•˜κΈ°]https://school.programmers.co.kr/learn/courses/30/lessons/120811# | [#13]https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/13 |
| 4μ°¨μ‹œ | 2024.04.09 | 좜λ ₯ |[μ§κ°μ‚Όκ°ν˜•μΆœλ ₯ν•˜κΈ°]https://school.programmers.co.kr/learn/courses/30/lessons/120823 | [#17]https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/17/commits|
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
function solution(polynomial) {
const values = polynomial.split(' + ');
console.log("values : ", values);
let x = 0;
let c = 0;
for(let i=0;i<values.length;i++) {
const item = values[i];
if(item[item.length-1] !== 'x') {
c += Number(item);
}
else {
// xμΌλ•Œ
const num = item.split('x')[0];
if(num === '') {
x += 1;
} else {
x += Number(num)
}
}
}
let answer = '';
if(x === 1) {
answer += 'x';
}
if(x > 1) {
answer += `${x}x`;
}

if(x === 0 && c > 0) {
answer += c;
}
else if(c > 0) {
answer += ` + ${c}`;
}
return answer;
}
6 changes: 6 additions & 0 deletions oesnuj/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,10 @@
| 2μ°¨μ‹œ | 2024.03.29 | μ—°κ²°λ¦¬μŠ€νŠΈ | [에디터](https://www.acmicpc.net/problem/1406) | [#8](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/8) |
| 3μ°¨μ‹œ | 2024.04.02 | 덱 | [μΉ΄λ“œ 놓기](https://www.acmicpc.net/problem/18115) | [#11](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/11) |
| 4μ°¨μ‹œ | 2024.04.06 | μŠ€νƒ | [μ˜₯상 정원 κΎΈλ―ΈκΈ°](https://www.acmicpc.net/problem/6198) | [#14](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/14) |
| 5μ°¨μ‹œ | 2024.04.13 | 이뢄탐색 | [λ“£λ³΄μž‘](https://www.acmicpc.net/problem/1764) | [#20](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/20) |
| 6μ°¨μ‹œ | 2024.05.06 | κΈ°ν•˜ν•™ | [μ •μ‚¬κ°ν˜•](https://www.acmicpc.net/problem/1485) | [#22](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/22) |
| 7μ°¨μ‹œ | 2024.05.08 | μŠ€νƒ, 큐, 덱 | [queuestack](https://www.acmicpc.net/problem/24511) | [#24](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/24) |
| 8μ°¨μ‹œ | 2024.05.13 | μš°μ„ μˆœμœ„ 큐 | [μΉ΄λ“œ μ •λ ¬ν•˜κΈ°](https://www.acmicpc.net/problem/1715) | [#27](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/27) |
| 9μ°¨μ‹œ | 2024.05.30 | κ΅¬ν˜„ | [λΉ™κ³ ](https://www.acmicpc.net/problem/2578) | [#30](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/30) |
| 10μ°¨μ‹œ | 2024.07.04 | κ΅¬ν˜„ | [μƒμ–΄μ΄ˆλ“±ν•™κ΅](https://www.acmicpc.net/problem/21608) | [#34](https://github.com/AlgoLeadMe/AlgoLeadMe-10/pull/34) |
---
78 changes: 78 additions & 0 deletions oesnuj/κ΅¬ν˜„/21608.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
const fs = require('fs');
const filepath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = fs.readFileSync(filepath).toString().trim().split('\n');
//μž…λ ₯ 데이터 정리
const N = +input.shift();
const students = input.map(x => {
const [num, ...likes] = x.trim().split(' ').map(Number);
return { num, likes };
});

let board = Array.from({ length: N }, () => Array(N).fill(0));

const dr = [-1, 1, 0, 0];
const dc = [0, 0, -1, 1];

main();

function main(){
for(let i=0; i< N**2; i++){
if(i == 0){
board[1][1] = students[i].num; //첫학생은 1,1에 무쑰건 μ•‰λŠ”λ‹€.
continue;
}
choiceSeat(students[i].num); //학생을 쑰건에 맞게 μ•‰νžˆκΈ°
}
console.log(calcSatisfy()); //λͺ¨λ‘ 앉은 ν›„ λ§Œμ‘±λ„ κ³„μ‚°ν•˜κΈ°
}

// 졜적의 자리 선택 및 학생 배치 ν•¨μˆ˜
function choiceSeat(studentNum){
const neighborInfos = []; //인접 자리 정보λ₯Ό λͺ¨μœΌλŠ” λ°°μ—΄
for(let i = 0; i<N; i++){
for(let j =0; j<N; j++){
if(board[i][j] !== 0) continue; //이미 μ°¨μžˆλŠ” 자리 패슀
neighborInfos.push(getSeatInfo(i, j, studentNum));
}
}
neighborInfos.sort((a, b) => {
if (a.match !== b.match) {
return b.match - a.match; // match κΈ°μ€€ λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬
} else if (a.empty !== b.empty) {
return b.empty - a.empty; // empty κΈ°μ€€ λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬
} else if (a.r !== b.r) {
return a.r - b.r; // r κΈ°μ€€ μ˜€λ¦„μ°¨μˆœ μ •λ ¬
} else {
return a.c - b.c; // c κΈ°μ€€ μ˜€λ¦„μ°¨μˆœ μ •λ ¬
}
});
board[neighborInfos[0].r][neighborInfos[0].c] = studentNum; //졜적의 μœ„μΉ˜μ— μ•‰νžˆκΈ°
}

// νŠΉμ • 자리의 인접 정보 계산 ν•¨μˆ˜
function getSeatInfo(r, c, studentNum){
let empty = 0;
let match = 0;
// 학생 λ²ˆν˜Έμ— λ§žλŠ” μ’‹μ•„ν•˜λŠ” 학생듀 μ°ΎκΈ°
let studentLikes = students.find(student => student.num === studentNum)?.likes || [];
for(let i = 0; i< 4; i++){
nr = r + dr[i];
nc= c + dc[i];
if(nr < 0 || nc < 0 || nr >= N || nc >= N) continue;
if (board[nr][nc] == 0) empty++;
else if(studentLikes.includes(board[nr][nc])) match++
}
return { r: r, c: c, empty: empty, match: match };
}

//λ§Œμ‘±λ„ 처리
function calcSatisfy(){
let result = 0;
for(let i = 0; i<N; i++){ //λ‚¨μ•„μžˆλŠ” λͺ¨λ“  자리의 정보λ₯Ό μˆ˜μ§‘
for(let j =0; j<N; j++){
result += Math.floor(10 ** (getSeatInfo(i, j ,board[i][j]).match-1));
}
}
return result;
}
좜처: https://oesnuj.tistory.com/entry/Nodejs-λ°±μ€€-Javascript-21608-상어-μ΄ˆλ“±ν•™κ΅ [λΉ„νŠΈλ‘œ κ·Έλ¦¬λŠ” μ„±μž₯일기:ν‹°μŠ€ν† λ¦¬]
79 changes: 79 additions & 0 deletions oesnuj/κ΅¬ν˜„/2578.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#include <iostream>
using namespace std;

const int BINGO_SIZE = 5;
int board[BINGO_SIZE][BINGO_SIZE];

void changeBingo(int target);
int checkBingo();



int main()
{
ios::sync_with_stdio(0); cin.tie(0);
for (int i = 0; i < BINGO_SIZE; i++)
{
for (int j = 0; j < BINGO_SIZE; j++)
{
cin >> board[i][j];
}
}

int sayCnt = 0;
for (int i = 0; i < BINGO_SIZE * BINGO_SIZE; i++)
{
int num;
cin >> num;
sayCnt++;
changeBingo(num);
if (checkBingo() >= 3) {
cout << sayCnt;
return 0;
}
}
return 0;
}


void changeBingo(int target) //μ‚¬νšŒμžκ°€ λΆ€λ₯Έ 수 μ²΄ν¬ν•˜κΈ°
{
for (int i = 0; i < BINGO_SIZE; i++){
for (int j = 0; j < BINGO_SIZE; j++){
if (board[i][j] == target){
board[i][j] = 0;
return;
}
}
}
return;
}

int checkBingo() //ν˜„μž¬ λ³΄λ“œνŒμ— λΉ™κ³ κ°€ λͺ‡μ€„인지
{
int bingoCnt = 0;

for (int i = 0; i < BINGO_SIZE; i++) //κ°€λ‘œ, μ„Έλ‘œ λΉ™κ³  확인
{
int horizontal = 0, vertical = 0;
for (int j = 0; j < BINGO_SIZE; j++){
if (!board[i][j])
horizontal++;
if (!board[j][i])
vertical++;
}
if (horizontal == BINGO_SIZE) bingoCnt++;
if (vertical == BINGO_SIZE) bingoCnt++;
}

int right_diagonal = 0, left_diagonal = 0;
for (int i = 0; i < BINGO_SIZE; i++) //λŒ€κ°μ„  2개 λΉ™κ³  확인
{
if (!board[i][i]) right_diagonal++;
if (!board[i][BINGO_SIZE - i - 1]) left_diagonal++;
}
if (right_diagonal == BINGO_SIZE) bingoCnt++;
if (left_diagonal == BINGO_SIZE) bingoCnt++;

return bingoCnt;
}
53 changes: 53 additions & 0 deletions oesnuj/κΈ°ν•˜/1485.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;

struct Point
{
int x, y;
};

int calcDistance(Point a, Point b)
{
return pow(a.x - b.x, 2) + pow(a.y - b.y, 2);
}

bool compareInfo(Point &a, Point &b)
{
if(a.x == b.x)
return a.y < b.y;
return a.x < b.x;
}

int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);

int n;
cin >> n;

while (n--)
{
vector <Point> v(4);
for (int i = 0; i < 4; i++) {
cin >> v[i].x >> v[i].y;
}
sort(v.begin(), v.end(),compareInfo);
//2 3
//0 1
int s1 = calcDistance(v[0], v[1]); //μ„ λΆ„
int s2 = calcDistance(v[0], v[2]);
int s3 = calcDistance(v[1], v[3]);
int s4 = calcDistance(v[2], v[3]);

int dia1 = calcDistance(v[0], v[3]); //λŒ€κ°μ„ 
int dia2 = calcDistance(v[1], v[2]);
if (s1 == s2 && s2 == s3 && s3 == s4 && dia1 == dia2) //λ„€λ³€μ˜ 길이가 κ°™κ³  λŒ€κ°μ„ μ˜ 길이가 κ°™λ‹€.
cout << 1 << '\n';
else
cout << 0 << '\n';
}
return 0;
}
35 changes: 35 additions & 0 deletions oesnuj/덱/24511.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#include <iostream>
#include <deque>
#include <vector>
using namespace std;

int main()
{
ios::sync_with_stdio(false); cin.tie(NULL);
int n;
cin >> n;
vector <int> dataStructure(n); //μŠ€ν…μΈμ§€ 큐인지 μž…λ ₯λ°›κΈ°
for (auto& i : dataStructure){
cin >> i;
}

deque <int> queuestack;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
if (dataStructure.at(i) == 0) //큐인 κ²½μš°μ—λ§Œ 처리, μŠ€νƒμ€ 무쑰건 μž…λ ₯값이 λ‚˜μ˜€κΈ°μ— μ—†λ‹€κ³  보면됨
queuestack.push_back(x);
}
int m;
cin >> m;
for (int i = 0; i < m; i++)
{
int x;
cin >> x;
queuestack.push_front(x);
cout << queuestack.back() << " ";
queuestack.pop_back();
}
return 0;
}
33 changes: 33 additions & 0 deletions oesnuj/μš°μ„ μˆœμœ„ 큐/1715.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include <iostream>
#include <queue>

using namespace std;

int main() {
ios::sync_with_stdio(false); cin.tie(NULL);

priority_queue <int, vector<int>, greater<int>> pq; //μ΅œμ†Œ νž™μœΌλ‘œ μš°μ„ μˆœμœ„ 큐 μ„ μ–Έ
int n;
cin >> n;
for (int i = 0; i < n; i++) //μš°μ„ μˆœμœ„ 큐에 λ‹€ λ„£μŒ
{
int x;
cin >> x;
pq.push(x);
}
int result = 0;
while(pq.size() > 1) //μš°μ„ μˆœμœ„ 큐에 값이 ν•˜λ‚˜λ§Œ 남을 λ•Œ κΉŒμ§€ 반볡
{
// μš°μ„ μˆœμœ„ νμ—μ„œ κ°€μž₯ μž‘μ€ 두 수λ₯Ό κΊΌλ‚΄μ„œ ν•©μΉ¨
int a = pq.top();
pq.pop();
int b = pq.top();
pq.pop();
int sum = a + b;
pq.push(sum); // ν•©μΉœ κ²°κ³Όλ₯Ό μš°μ„ μˆœμœ„ 큐에 λ‹€μ‹œ λ„£μŒ

result += sum; // 결과값을 λˆ„μ 
}
cout << result;
return 0;
}
Loading

0 comments on commit 5f494ae

Please sign in to comment.